因為 pop-before-smtp 是採用分析 log 檔的方式,來知道曾經使用 pop3 來收信的客戶端的位址,可是不同 pop3 程式記錄在 log 檔案的格式不同,所以 pop-before-smtp 必須根據不同的 pop3 程式來作設定。偏偏我之前用的 popa3d 根本就不會將 pop3 的連線記錄記錄在 log 檔案中(我找過 mail.* syslog ...等 log 檔 都找不到),難怪 pop-before-smtp 一直無法作用。
---------------------------------------------------
以下是我自己使用的設定以及 pop 程式:
1.首先當然要安裝 postfix 、 pop-before-smtp 、qpopper
#apt-get install postfix pop-before-smtp qpopper
2.皆下來編輯 /etc/pop-before-smtp/pop-before-smtp.conf
找到下面這幾行
- 代碼: 選擇全部
# Nick Bauer <nickb@inc.net> supplied the basis for this qpopper pattern.
# Some extra tweaks support more recent variations.
$pat = '^(... .. ..:..:..) \S+ (?:in\.)?qpopper\S*\[\d+\]: \([^)]*\) ' .
'POP login by user "[^"]+" at \([^)]+\) (\d+\.\d+\.\d+\.\d+)';
把後兩行($pat 和下一行)前面的註解(#)拿掉,這是 qpopper 的專用記錄樣式
3.編輯 /etc/postfix/main.cf
增加或修改這一行的設定
- 代碼: 選擇全部
smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient, check_client_access hash:/var/lib/pop-before-smtp/hosts, check_relay_domains
這樣應該就可以了!