我收到过一些消息 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