![经过验证的外发电子邮件被邮件服务器上的 PBL 标记为垃圾邮件](https://linux22.com/image/706001/%E7%BB%8F%E8%BF%87%E9%AA%8C%E8%AF%81%E7%9A%84%E5%A4%96%E5%8F%91%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E8%A2%AB%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%20PBL%20%E6%A0%87%E8%AE%B0%E4%B8%BA%E5%9E%83%E5%9C%BE%E9%82%AE%E4%BB%B6.png)
用户正在通过我的邮件服务器上的提交端口发送经过身份验证的电子邮件(他们的域 MX 记录指向邮件服务器;postfix)。
已设置的内容
- 一个记录
- MX 记录(所有域都指向同一个邮件服务器)
- PTR 记录解析为邮件服务器名称
- DKIM:通过
- SPF:通过
- DMARC:通过
- 带有 clamd 和 spamassassin 的 MailScanner
- SASL 身份验证(邮件标题提及用户已通过身份验证)
- 无开放中继
- ...
我看到邮件标题已通过验证。
但是我看到 spamassassin 将其标记为垃圾邮件(它提到客户端的 IP 在 RBL 上)。当我查询 spamhaus 时,我看到客户端 IP(由于移动 ISP 而动态变化)。Zenhaus 说它在 PBL 上,因此基本上根据客户端 IP 的策略将其标记为垃圾邮件。
除此之外,这些电子邮件没有任何问题。其他 ISP 没有出现此问题,并且电子邮件可以正常传送。
现在开始回答我的问题...:)
- 通过提交端口发送的邮件是否应该经过 Mailscanner(spamassassin + clamd)?我认为是的,因为它首先已经阻止人们发送垃圾邮件(而不是阻止垃圾邮件被发送)。另一方面,接收邮件服务器不能信任标头中的内容,因此它可能还是会检查它。
- 如果仅在 PBL 上提及,有没有办法不将其标记为垃圾邮件?
- 发布消息是否会使其可传递?还是只会转移问题?(因此接收邮件服务器可能会检查并根据 PBL 将其标记为垃圾邮件)如果它转移问题,那么尝试绕过经过身份验证的用户的 PBL 似乎不是一个有效的解决方案。
- 接收邮件服务器是否只检查最后一个标头(即我的邮件服务器添加的标头)?在这种情况下,禁用垃圾邮件检查实际上可能会解决问题,而不会将其转移到下一台机器。
- 另一个想到的办法是删除/修改第一个标头,这样 IP 就不再被提及。但这似乎是一种不好的做法。
- 处理这个问题的正确/适当的方法是什么?
为了清楚起见:邮件是在用户已在其笔记本电脑/手机上配置的 smtp 服务器上接收的,并放入 postfix 队列中。因此不会直接拒绝客户端。只有在 mailscanner 介入并在发送之前检查电子邮件后(在这种情况下将其标记为垃圾邮件而不发送)。
提前谢谢您!
答案1
我很惊讶没有人能对此提供一些意见。我查看了 Postfix 用户邮件列表并从 Dominic 那里得到了一些很好的反馈(谢谢!)。
- 通常情况下,通过端口 25 发送的邮件会受到黑名单和防病毒软件的检查。通过提交端口发送的邮件则不会(尽管您仍然可以)。
- 使用 spamhaus blocklist 等工具检查新连接,并在邮件放入队列之前断开连接。优点是客户端可以直接看到拒绝。
- 就我的情况而言,我做了以下更改:将 zen.spamhaus ......添加到 smptd_sender_restrictions,然后在 Mailscanner 规则中禁用 zen 和 pbl。
- 另一个 smptd 服务器将考虑的 IP 地址是您连接到它的 IP。而不是标头中的 IP。我认为这听起来很有效,因为标头可以伪造,因此它们没有什么价值。
- 由于上述原因,发布邮件使其可传递。我已验证,在为经过身份验证的用户禁用 spamhaus PBL 后,邮件已传递。
我希望这能帮助别人。