我已将 Postfix 配置为使用 SpamAssassin spamd 守护程序过滤邮件。我最近注意到,一些垃圾邮件会发送到我的收件箱,但未添加 SpamAssassin 标头。我将其追溯到这样一个事实:我每天都有一个 cron 作业来更新 SpamAssassin 并sa-update
重新启动 spamd。当 Postfix 在 spamd 重新启动时收到一封邮件时,它会在不进行任何过滤的情况下发送该邮件。
我的解决方案是修改 cron 作业,在重新启动 spamd 之前停止 Postfix,然后再重新启动。这是最好的解决方案吗?我能以某种方式告诉 Postfix 暂停所有投递吗?我能更改对 spamd 的调用,使其阻塞直到 spamd 恢复吗?
以下是我的 SpamAssassin 中的一行/etc/postfix/master.cf
:
spamassassin unix - n n - - pipe user=nobody argv=/usr/bin/spamc -u ${user} -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
postsuper -h ALL
我找到了使用暂停传送的参考资料,但这似乎只能保留当前在 Postfix 队列中的邮件。在我发出后收到的新邮件postsuper -h ALL
仍可正常传送。