如何在 Postfix 中自定义队列前的筛选回复?

如何在 Postfix 中自定义队列前的筛选回复?

目前我使用 postfix 和 spamass-milter 以及 clamav-milter 作为队列前过滤器,它们都运行良好。我每天根据一组强大的 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=<[email protected]> [...]

我唯一要抱怨的是,上面第二行日志中的 SMTP 回复显示,在终止 SMTP 会话之前,我因为 Spamassassin/spamass-milter 而拒绝了该邮件。反过来,clamav-milter 阻止了该邮件,并在 SMTP 会话中回复它认为检测到的病毒。

我想要的是仅包含 SMTP 数字状态代码的静默回复。没理由过多地告知垃圾邮件发送者,而且我对 RFC 合规性的理解是,只需要数字状态代码。

我已经寻找并找到了一个可调参数来定制这些回复,既适用于 milter,也适用于一般的 postfix(例如,我的 postfix 也会根据 RBL 信息进行排队前拒绝,等等),但我似乎找不到正确的旋钮(如果有的话)。

有人知道这种定制是否可以实现,如果可以,那么如何进行?

答案1

这可以在 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)收集此类信息。

相关内容