Postifx header_checks无法正常工作

我有main.cfconfiguration:

header_checks = regexp:/etc/postfix/header_checks 

/etc/postfix/header_checks

 /^Subject:.*viagra.*/i DISCARD /^Subject:.*pills.*/i DISCARD /^Subject:.*f\*ckbuddy.*/i DISCARD /^Subject:.*f\*ckfriend.*/i DISCARD /^Subject:.*f\@ck.*/i DISCARD /^From:.*viagra.*/i DISCARD 

注意我添加了/i来区分大小写。 不知道这是否允许?

我已经尝试从hotmail发送电子邮件到我的服务器药丸的主题,但仍然没有运气! 还有一个返回发件人方法,而不是DISCARD

如果postmap -q "<put test header here>" regexp:/etc/postfix/header_checks正确地返回DISCARD(或匹配的相应动作),但是postfix实际上并不执行所述动作,那么可能有一个receive_override_options=no_header_body_checksmain.cfmaster.cf中的某处closures标题检查。 在master.cf文件中,它将是其中一个服务configuration条目中的-o选项。

receive_override_options有4个选项:

  • no_unknown_recipient_checks不要尝试拒绝未知收件人(仅限SMTP服务器)。 这通常是在外部内容filter之后指定的。
  • no_address_mappings禁用规范地址映射,虚拟别名映射扩展,地址伪装和自动密件抄送(密件抄送)收件人。 这通常在外部内容filter之前指定。
  • no_header_body_checks禁用头文件/ body_checks。 这通常是在外部内容filter之后指定的。
  • no_milters禁用Milter(邮件filter)应用程序。 这通常是在外部内容filter之后指定的。

no_address_mappings选项通常位于main.cf而其他选项则位于master.cf

“-o receive_override_options”将覆盖main.cf设置,以避免重复在内容filter之前完成的工作。 这些选项是对main.cf中指定的选项的补充

来源: Postfix After-Queue内容filter

  • regex:pcre:默认情况下,模式不区分大小写。 但是, i国旗应该工作。
  • 您可以使用REJECT而不是DISCARD来通知发件人。
  • 你使用postmap /etc/postfix/header_checks和重新加载后缀?
  • 您可以在许多网站上在线testing正则expression式。 http://www.pagecolumn.com/tool/pregtest.htm允许POSIX正则expression式&#x3002;
  • 如果可用的话,使用pcre正则expression式通常比用正则regexp:使用Posix实现更快。 使用header_checks = pcre:/etc/postfix/header_checks

  • 什么是日志文件说?

正如@HZC所说,它可能是一个-o receive_override_options问题。 我在这里有同样的问题: 我的问题,并解决了后postfix header_checks使用正则expression式适当的设置 。 我的情况是拒绝而不是DISCARD 。 如果您想作弊垃圾邮件发送者,您使用DISCARD,垃圾邮件发送者将不会收到任何通知。 欲了解更多关于这方面的信息,你可以访问这个链接 ,看看拒绝行动部分。

DISCARD结构:

  DISCARD optional text... Claim successful delivery and silently discard the message. Log the optional text if specified, otherwise log a generic message.