使用postfix,policyd和amavis过滤垃圾邮件到IMAP文件夹?

使用amavisd-new,我成功标记了多个标头,并准确报告了大多数垃圾邮件。

不过,现在我把它发送到收件箱,我想有一个垃圾文件夹,而不是。 我会不时在这些箱子(每个帐户一个)上运行sa-learn。 所以可以在那里放置假阴性,系统会从中学习。

我不确定是否postfix,amavis或policyd是正确的开始。 当我使用虚拟域时,每个用户@域都会有一个不同的文件夹,而不是一般的隔离区。

任何想法如何设置? 我想我希望它的function像今天的Gmail或雅虎邮件,自动将疑似垃圾邮件转移到垃圾邮件文件夹中。

有几个选项可以实现这一点,而且它们都主要依靠您正在使用的交付代理来完成最终交付给用户的虚拟邮箱。

  1. 如果您正在使用股票Postfix虚拟(8)交付代理,则无法完成此操作。
  2. 如果您正在使用Cyrus LDA或Dovecot LDA,您还有两个select:您可以使用其内置的Sievefunction(快速Googlesearch应该会揭示如何parsingX-Spam-Status标头)并提供全球筛网脚本或使用收件人分隔符(在Postfix'main.cf中设置recipient_delimiter = +并查看amavisd-new的redirect文档 )。
  3. 如果你正在使用maildrop,请看James的答案。
  4. 如果这些选项都不适用,可以让amavisd-new将这些邮件放到隔离区。 OSS隔离pipe理员很less,对于基于SQL的隔离,我只知道MailZu和MailZu-ng用于现代amavisd-new。 Maia Mailguard自带了amavisd新的实现(我不build议使用Maia的各种原因)。 最后,我最近一直在编写一个综合的隔离/邮件pipe理应用程序 ,但是我不能给出任何关于何时完成的date。

一个完全不同的方法,假设您的邮件量很低,或者您有权访问某些严重的硬件,那么将运行amavisd-new作为之前的队列filter ,从而完全消除垃圾邮件/垃圾文件夹或隔离区的需要:如果合法的邮件被拒绝为垃圾邮件,发件人将被自己的邮件服务器通知 – 因为您从技术上来说从未接受邮件,您将不负责任何事情。

您需要设置类似procmail或maildrop的邮件过滤到正确的文件夹,当它被交付。

使用maildrop你可以有一个默认的系统范围的configuration,将检查标题和垃圾邮件过滤到正确的位置,像这样的/ etc / maildroprc:

如果(/ ^ X-Spam-Status:是){
    到“Maildir / .Spam”
 }

根据您的本地设置更改邮箱位置。

首先,对不起,因为这不是你的问题的直接答案,而只是张贴工作的垃圾邮件certificate后缀configuration。

我维护企业服务器,包括邮件。 在过去的几年中,我尝试了不同的邮件服务器,众多的configuration和插件。 到目前为止,正在实际传送到其中一个用户邮箱的正常垃圾邮件数量平均为每周1个 。 考虑到我有超过一百个邮箱的结果是真棒。
当然,这需要定期检查邮件日志,并阻止可以通过postfix的服务器的IP地址,但是相信我,我最好手动将一个IP放入垃圾邮件数据库,而不是使用垃圾邮件filter。

最近我在博客上发布了一篇关于我的AntiSPAM postfix设置的小文章。

我目前的configuration使用postgrey和Dovecot的Postfix,都使用相同的PostgreSQL数据库。

我不会100%依靠amavisd来丢弃被认为是垃圾邮件的邮件; 我只会以某种方式标记主题,并仍然提供

然而,直到那里,灰名单,spf和rbl真的很棒