停止发送已标记为垃圾邮件的垃圾邮件

7 postfix spam spamassassin amavis

我运行带有 Amavis 和 Spamassassin 等功能的 Postfix 服务器。Postfix 接收来自外部世界的邮件并将其传递给 Amavis。Amavis 让 Spamassassin 对邮件进行评级,然后在必要时将其标记为垃圾邮件。然后 Postfix 依赖每个用户的 procmailrcs 来处理邮件。我相信这是正确的方法,因为我相信每个用户都应该能够选择如何处理他们的垃圾邮件。不幸的是,我们的虚拟别名列表中也有一些用户拥有外部域。因为这些地址在我们的服务器上没有用户帐户,所以转发给它们的垃圾邮件永远不会通过 procmailrc,我们最终会将已经标记为垃圾邮件的垃圾邮件转发到其他服务器。有没有办法阻止已标记为垃圾邮件的外发邮件?或者有没有其他方法可以解决这个问题?

编辑:我只想删除既是垃圾邮件又被转发到其他服务器的邮件。我不想删除所有标记为垃圾邮件的邮件。有没有办法区分这两者?

Sri*_*oor 2

您可以删除标头中带有特定标签的电子邮件。

有关详细信息,请参阅Postfix 标头检查手册页

例子:

在“/etc/postfix/main.cf”中,添加

header_checks = 正则表达式:/etc/postfix/header_checks

在“/etc/postfix/header_checks”中,有

/^(主题:\[垃圾邮件\])(.+)$/ 丢弃

上述命令将丢弃所有主题以“[SPAM]”开头的电子邮件。

编辑:我只想删除既是垃圾邮件又被转发到其他服务器的邮件。我不想删除所有标记为垃圾邮件的邮件。有没有办法区分两者呢?

这可以通过在 Postfix 中运行两个实例来完成。第一个实例会将电子邮件转发到第二个实例(而不是远程电子邮件服务器)。通过指定本地传输也可以实现同样的目的。

第二个实例将具有上述 header_checks。这样,只有发送到远程服务器的电子邮件的垃圾邮件才会被删除。

一些参考:

  1. 指定传输
  2. 您可以通过在 master.cf 文件中指定其他条目来运行 Postfix 的多个实例。详细信息在这里