我试图拒绝包含特定短语的电子邮件主题(例如“配额限制”)使用Postix 2.9.6。根据 postfix 的文档,我意识到 postfix 通过检查标头来处理此信息。因此header_checks是用于检查电子邮件标题的属性。知道这一点后,我在我的主配置文件文件:
header_checks = regexp:/etc/postfix/acl/header_checks/regexp
并且 regexp:/etc/postfix/acl/header_checks/regexp 文件包含:
/^Subject.*quota limit.*/ REJECT "SPAM ID:HeaderChecks01 Possible SPAM"
接下来我使用以下方法验证了设置(参见配额限制在主题中):
postmap -q "Subject:squota limitjk" regexp:/etc/postfix/acl/header_checks/regexp
我得到了:
REJECT "SPAM ID:HeaderChecks01 Possible SPAM"
有效!任何带有此内容的消息配额限制主题中的短语应自动拒绝。 事情是它不是然后我在这里查看了关于 header_checks 的 postfix 官方文档:header_checks 。显然我做的事情是对的。为什么这不起作用?? 在发布此帖之前,我注意到这个很棒的网站 (serverfault) 上有一些先前的问题关于这个问题所有这些问题都没有准确的答案。你可以在这里查看: Postfix header_checks 不起作用和Postifx header_checks 不起作用
举一个更接近的例子,我将一段来自真实(不包括真实域)垃圾邮件的纯文本复制到本地文件,并执行了相同的 postmap -q 检查,得到了相同的结果。所以这似乎根本不是正则表达式问题。文本如下(请参阅配额限制在主题中):
Reply-To: [email protected]
Message-ID: <[email protected]>
From: "ACCOMPLISH DELIVERY"
<[email protected]>
To: <[email protected]>
Subject:=?windows-1252?Q?A_Spequota limitiversi_Aria_Pro._cia?=
<asdqtext to fill>
最后但同样重要的一点是,我尝试改变header_checks经过smtp_header_checks,mime_header_checks,smtp_mime_header_checks,milter_header_checks乃至嵌套标头检查(以防万一)但什么也没得到。我还在 master.cf 文件中检查了 accept_override_options 参数,但找不到它,所以没有覆盖 header_checks。
需要指出的是: 以下header_check我有smtp_body_checks任何带有“配额限制”字样的电子邮件实际上都会被拒绝,没有任何问题。这只是这个属性本身的问题。
答案1
我的帖子的正确解决方案在这里:-o 接收覆盖选项 = 无标头主体检查
我刚刚添加了行-o 接收覆盖选项 = 无标头主体检查到我的 master.cf 文件无评论就这样。到目前为止,我一直在做我一开始想做的事情。我想这篇帖子应该被删除或标记为重复。