Postfix

如何在 Postfix 中自定義隊列前過濾器回复?

  • August 16, 2019

目前我使用帶有 spamass-milter 和 clamav-milter 的 postfix 作為隊列前的 milters,它們都工作得很好。根據一套強大的 Spamassassin 規則和貝氏數據,我每天在我的小型個人郵件伺服器上拒絕數百封郵件。

smtpd_milters = unix:/spamass/spamass.sock, unix:/clamav/clamav.sock
milter_default_action = accept

Mar 20 12:00:00 hostname spamd[23017]: spamd: result: Y 14 - {LIST OF SPAMASSASSIN RULES APPLIED} scantime=1.0,size=15000,required_score=5.0, [...]
Mar 20 12:00:01 hostname postfix/cleanup[23375]: BA3D3ADB33F milter-reject: END-OF-MESSAGE from unknown[IP_ADDRESS]: 5.7.1 Blocked by SpamAssassin; from=<spam@spam.spam> [...]

我的一個抱怨是,上面第二個日誌行中的 SMTP 回复顯示我在終止 SMTP 會話之前因為 Spamassassin/spamass-milter 而拒絕了該郵件。反過來,clamav-milter 在 SMTP 會話中阻止並回复它認為檢測到的病毒。

我想要的是只有 SMTP 數字狀態程式碼的無聲回复。沒有理由過度告知垃圾郵件發送者,我對 RFC 合規性的理解是只需要數字狀態程式碼。

我一直在尋找一個可調參數來自定義這些回复,包括 milters 和一般的後綴(例如,我的後綴也是基於 RBL 資訊的隊列前拒絕等),但我似乎找不到右旋鈕,如果有的話。

有誰知道這種定制是否可行,如果可以,該怎麼做?

這可以在 milter 中進行定制。spamass-milter 0.4.0版,2014 年的最新版本添加了兩個選項來覆蓋它拒絕的消息的響應:

-C 拒絕程式碼

Mail that is rejected is rejected by default with a 5.7.1 code.
This option  allows that to be overridden.  See also, -R -S option.

-R 拒絕文本

Mail that is rejected is rejected with the message "Blocked by SpamAssassin".
This option allows the user to call with a different message, instead.   See
also, the -C option.

如果您將這兩個值都設置為已在其他地方用於不同 EOM 階段拒絕的值,您可能會使決定的來源不那麼明顯。一些 Linux 發行版在配置文件中提供了此類選項的參數,請檢查相關的啟動腳本 ( systemctl cat spamass-milter.service) 以找到編輯這些選項的最佳位置。

請記住,真正想要調查其郵件被拒絕原因的發件人仍然可以從其他來源(例如 MDN)收集此類資訊。

引用自:https://serverfault.com/questions/765464