我使用Amavis和Spamassassin运行Postfix服务器。 Postfix接收来自外部的邮件并将其传递给Amavis。 Amavis对邮件进行了Spamassassin评分,然后在必要时将其标记为垃圾邮件。 然后Postfix依靠每个用户的procmailrcs来处理邮件。 我相信这是正确的方法,因为我相信每个用户都应该有能力select如何处理垃圾邮件。 不幸的是,我们也有一些用户在我们的虚拟列表中有foregin域名。 由于这些地址没有用户帐号与我们的服务器,转发给他们的垃圾邮件绝不会通过procmailrc,我们最终会将已经标记为垃圾邮件的垃圾邮件转发给其他服务器。 有没有办法阻止已经标记为垃圾邮件的传出邮件? 或者有没有其他方法可以解决这个问题?
编辑:我只希望删除既是垃圾邮件,并正在转发到其他服务器的邮件。 我不想删除标记为垃圾邮件的所有邮件。 有没有办法区分两者?
您可以删除标题中特定标签的电子邮件。
有关详细信息,请参阅Postfix Header Checks Man页面 。
例:
在“/etc/postfix/main.cf”中添加
header_checks = regexp:/ etc / postfix / header_checks
在“/ etc / postfix / header_checks”中,有
/ ^(Subject:\ [SPAM \])(。+)$ / DISCARD
以上将放弃主题以“[垃圾邮件]”开头的所有电子邮件。
编辑:我只希望删除既是垃圾邮件,并正在转发到其他服务器的邮件。 我不想删除标记为垃圾邮件的所有邮件。 有没有办法区分两者?
这可以通过在Postfix中运行两个实例来完成。 第一个实例将电子邮件转发到第二个实例(而不是远程电子邮件服务器)。 指定本地运输也可以达到同样的效果。
第二个实例将具有上述的header_checks。 这种方式只有电子邮件到远程服务器将删除其垃圾邮件。
一些参考: