推荐的方式来实现Postfix的“队列前”SpamAssassin过滤?

经过与同事和相关部门的讨论。 在我的办公室里,我得出结论说,对于我的Postfix服务器,我必须实现一个“前队列”过滤。 原因是,通过“排队后”过滤,电子邮件将会丢失,而发件人(如果是误报)将永远不会意识到这一点。

这是我的公司无法接受的。 如果“虚假被告”发件人收到通知,我们希望他/她通过其他渠道尝试重新发送电子邮件。 如果他/她没有收到通知,他/她将不会尝试重新发送。

现在,在仔细阅读SpamAssassin上的各种文档之后,我发现了多种实现SpamAssassin'before-queue'过滤的方法。 例如,

  • SA + amavisd-new(作为smtpd代理运行)
  • SA + amavisd-new + amavisd-milter
  • SA + MIMEdefang(以milter身份运行)
  • SA + spampd(作为smtpd代理运行)
  • SA + milter-spamd

…我相信你也可以find其他方法来实现它。

我的问题是:上面哪个(哪个)被推荐? 你知道它的优点/缺点吗? 或者你有更好的想法?

提前致谢!

他们都没有! 使用amavisd-new(带有SA,没有病毒扫描程序!!)作为before-queue-filter。

你做这个描述在这里: http : //www.postfix.org/SMTPD_PROXY_README.html即使正反两面广泛讨论那里。

在开始之前,您应该查看http://www.postfix.org/POSTSCREEN_README.html ,在获得amavis之前,删除所有垃圾邮件的70%。

之后,你看看http://www.policyd-weight.org/再下降10%。

当您进行队列过滤之前,请使用amavis工作线程的一个非常合适的(testing!)数量。 把amavis的tmp目录放到一个RAM磁盘上(在amavisd-new网站上有描述)。 没有太多的调整,然后过滤20封邮件每秒。 优化会让你更多的,但你真的有这么高的stream量(假设只剩下20%)?

这个问题是相当古老的。 但是对于像我这样的人却偶然发现。 Amavisd-New有这个选项:

$final_spam_destiny = D_DISCARD; 

所以只要将上面的默认值改为:

 $final_spam_destiny = D_BOUNCE; 

所有被认为是垃圾邮件的电子邮件都将被反弹而不是被丢弃。 不过要记住的是,如果它很难做到的话,那很可能是一封虚假的电子邮件,它会引起反弹。