我已经设置了后缀,因此来自 smtpd 的邮件会自动通过 spamassassin 过滤(它会将其重新注入带有添加标题的邮件队列)
现在我想对被认为是垃圾邮件的邮件做两件事:
- 如果邮件再次出站(因为别名)当场丢弃邮件
- 如果邮件是发给本地虚拟用户的,则将其交给 Dovecot,Dovecot 将其放入垃圾邮件文件夹。
我可以这样配置后缀吗?我所有的别名和用户信息都在 MySQL 中。目前我丢弃所有垃圾邮件(在 main.cf 中带有 header_checks),但我更喜欢上述情况。
我已经设置了后缀,因此来自 smtpd 的邮件会自动通过 spamassassin 过滤(它会将其重新注入带有添加标题的邮件队列)
现在我想对被认为是垃圾邮件的邮件做两件事:
我可以这样配置后缀吗?我所有的别名和用户信息都在 MySQL 中。目前我丢弃所有垃圾邮件(在 main.cf 中带有 header_checks),但我更喜欢上述情况。
您可以在 master.cf 中设置另一个 smtp 侦听器进程来处理您的外发邮件。像下面这样的东西应该让你开始监听端口 26:
您可能需要稍微调整一下,以禁用本地传递并且不接受来自除本地主机之外的任何地方的邮件。然后,您需要将以下内容添加到您的 main.cf
当然,将您的标头检查从该文件中删除。
邮件将被转发到 26 上的第二个 smtpd 进程,然后将失败的邮件作为垃圾邮件丢弃。如果您需要将邮件传递到下游服务器而不是直接传递,您还可以在该侦听器中指定中继主机。
然后,您将使用 Dovecot 为您的本地用户设置其余的过滤,就像您已经建议的那样。
您当然需要考虑在执行此操作时添加到邮件中的邮件跃点数,因为某些邮件提供商会丢弃具有相当数量跃点的邮件(例如,gmail 在 10 或 15 之后丢弃