用postfix中的空消息标识阻止消息

我收到了一些垃圾邮件,其中message-id为空,例如:

Sep 18 12:07:16 postfix / cleanup [21530]:message-id = <>

我不使用SpamAssassin。 有没有办法使用postfix拒绝任何带有空的消息ID的消息?

这是一个坏主意吗? 我已经浏览了我的maillog,只有垃圾邮件显示空的消息ID,但当然我想尽量减less拒绝合法的消息。

***更新想在main.cf中尝试这样的东西的想法:

header_checks = pcre:/etc/postfix/header_checks.pcre 

与header_checks.pcre像这样:

 /message-id:[\s]*<>/i REJECT Invalid message format. 

要么

 /message-id:[ ]*<>/i REJECT Invalid message format. 

谢谢bqb

这pcre语法应该做的工作

 /^Message-ID:[[:space:]]*(<>)?[[:space:]]*$/ REJECT Invalid message format 

一些注意事项:

  • 如果消息ID标题行丢失, 后缀将插入该标题并忽略header_checks规则 。
  • 不推荐使用基于消息标识的拒绝消息。 一些MTA /networking应用程序可能会有不同的行为,导致拒绝合法的电子邮件 一些组织可能更倾向于“十个假阴性比一个假阳性更好”,其他组织可能更倾向于其他方式。
  • 在应用到生产模式之前,请通过添加WARN而不是REJECT来testing它

     /^Message-ID:[[:space:]]*(<>)?[[:space:]]*$/ WARN Invalid message format