我有一个运行 Exim 和 Dovecot 的邮件服务器,由 MySQL 为虚拟用户提供支持。Spamassassin 已配置并且似乎工作正常,但未配置将标记的垃圾邮件发送到收件人的“垃圾邮件”目录。我们使用 maildir 格式进行存储。
我将如何处理邮件将被发送到的地方?我原以为 procmail 可以做到这一点,但我没有看到任何适合这个特定设置的配置。
简而言之: - Exim - Spamassassin - 虚拟用户,每个用户的根目录 = /home/mail/$domain/$local_part - 例如想要将垃圾邮件发送到 /home/mail/$domain/$local_part/spam/
TIA
这是应该可以正常工作的东西。我基于标准的“本地交付”路由器/传输,但在 X-Spam-Flag 标头的条件中添加了它,我在相关 ACL 中较早设置了该标头。如果您不知道该怎么做,请告诉我,我会修改答案。
我做了类似的事情,但在域级别,我的设置可能对你来说不太好。
首先,你需要一个路由器。路由器是按顺序处理的,所以把它放在合适的地方——通常在你收到普通邮件之前,因为这将优先。
现在你需要一个 local_spam_delivery 传输,所以把它放在你的传输部分的任何地方:
如果您不希望它作为 maildir,请删除 maildir_format 命令。您可能需要稍微调整规则,尤其是关于用户和组设置等。
如果上面的示例中缺少某些内容,我注意到这里记录了一个类似的示例
您可以使用几个路由器轻松完成此操作。或者,您可以使用 exim 过滤器文件来执行此操作。
我的 ~/.forward 中有以下内容,但您可以轻松地为您的全局过滤器文件使用类似的内容。
使用您的路径应该可以。只需在示例中替换替换它,不要忘记尾部斜杠,否则您可能最终会交付为 mbox 格式。
我想出了以下将垃圾邮件发送到每个域的名为“Junk”的邮件目录的方法。
我想当我最初发布这个问题时,我想得太难了。以上似乎工作得很好。不过,我会接受丹尼尔的回答。