在 Postfix 中阻止带有空消息 ID 的消息

在 Postfix 中阻止带有空消息 ID 的消息

我收到过一些消息 ID 为空的垃圾邮件,例如:

9 月 18 日 12:07:16 postfix/cleanup[21530]: 消息 ID=<>

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

这是个坏主意吗?我查看了我的邮件日志,只有垃圾邮件显示空的消息 ID,但我当然希望尽量减少拒绝合法邮件。

*** 更新考虑在 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

答案1

这个 pcre 语法应该可以完成这个工作

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

一些注意事项:

  • 如果缺少消息 ID 标题行,后缀插入该标题忽略你的 header_checks 规则
  • 不建议根据消息 ID 拒绝邮件。某些 MTA/Web 应用程序可能会表现不同,导致合法电子邮件被拒绝。有些组织可能更喜欢“十个误报比一个误报好”,而其他组织可能更喜欢其他方式。
  • 在应用到生产模式之前,请通过添加 WARN 而不是 REJECT 进行测试

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

相关内容