安裝與選項
-
cd /usr/ports/mail/postfix21
make install clean
選取 SASL2、SASLKRB5、TLS、MySQL 等選項。
與系統搭配的設置
-
如果安裝過程中的提問︰Would you like to activate Postfix in /etc/mail/mailer.conf [n]?
您的回覆為 yes 的話,那就表示由安裝過程中幫您將 Postfix 取代系統自帶的 Sendmail 程式,而不用在安裝完成後手動設置。
因為我們會選用安裝 Sendmail 之外的郵件程式,就是為了不想再使用惡名昭彰的 Sendmail,所以建議可以放心的回覆 yes,系統會將原有的 /etc/mail/mailer.conf 備份為 /etc/mail/mailer.conf.old,就算是日後反悔想要使用 Sendmail 也只需將 /etc/mail/mailer.conf.old 改為 /etc/mail/mailer.conf 即可。
假如您在先前安裝過程中的提問︰Would you like to activate Postfix in /etc/mail/mailer.con [n]? 回覆 yes 的話,同時亦希望在開機時能夠自動啟用 Postfix,則請在 /etc/rc.conf 中加入如下設定值︰
sendmail_enable="YES" sendmail_flags="-bd" sendmail_pidfile="/var/spool/postfix/pid/master.pid" sendmail_procname="/usr/local/libexec/postfix/master" sendmail_outbound_enable="NO" sendmail_submit_enable="NO" sendmail_msp_queue_enable="NO"請注意︰ 上述 /etc/rc.conf 設定值僅適用於 FreeBSD 5.x 及其之後的版本;若您的系統為 FreeBSD 4.x 的版本,
請勿使用這種設定方式,因為這並不會啟用 Postfix 而是啟用系統自帶的 Sendmail。
作為開機自動啟用 Postfix 服務設置方式,還有另一種方式。
例如在本例的安裝選項中,我們啟用了 MySQL 的附加選項,這表示將會把 Postfix 與 MySQL 搭配運作,來管理主機中的郵件帳號等等。
但是因為 MySQL 的啟動程式預設是放置於 /usr/local/etc/rc.d/ 下的,這啟動的順序慢於 /etc/rc.d/ -- 也就是您於 /etc/rc.conf 中的設置,而 Postfix 若是要與 MySQL 搭配運作的話,則需等待 MySQL 運行之後方能於資料庫中取得所需的資料,不然將會產生資料無法取得的錯誤。
因此需要在 /etc/rc.conf 中做如下的設置︰
sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO"
然後再下達建立捷徑檔的指令,如下︰
ln -s /usr/local/sbin/postfix /usr/local/etc/rc.d/postfix.sh
/usr/local/sbin/postfix 本身是個二進位檔,並非純文字格式的文件檔。
同時,因為在 /usr/local/etc/rc.d/ 目錄下的檔案,其檔名必需以 .sh 同時必需具有可執行屬性,才能與系統啟動過程中讓系統執行。
另外,若是想修改 MTA 每日執行的行程,則請修改 /etc/periodic.conf 設置檔,您可能會需要自行建立新檔,因為預設系統中是不存在這個檔案的,如下︰
daily_clean_hoststat_enable="NO" daily_status_mail_rejects_enable="NO" daily_status_include_submit_mailq="NO" daily_submit_queuerun="NO"
另外,因為在本例中使用了 SASL2 的選項,所以要讓 postfix 這個使用者擁有讀取 sasldb* 的權限。
不管於安裝過程中,您是否讓系統自動幫您建立好相關的使用者與群組,保險起見,還是再檢查一次較為妥當。
- 檢查 postfix 使用者是否存在?
less /etc/master.passwd | grep postfixpostfix:*:125:125::0:0:Postfix Mail System:/var/spool/postfix:/usr/sbin/nologin
- 檢查 postfix 使用者是否存在 mail 這個群組中?
less /etc/group | grep mailmail:*:6:postfix mailnull:*:26: maildrop:*:126:
- 檢查 /usr/local/etc/sasldb* 檔案是否開放群組的讀取權限?
less /usr/local/etc/sasldb*-rw-r----- 1 cyrus mail 16384 Jan 13 2005 /usr/local/etc/sasldb2.db



