我们遇到了 SMTP 问题。我们的设置是内部 Exchange 服务器和具有 DNS 条目和 MX 记录的外部邮件网关 (exim)。此网关接受我们域的所有邮件,并接受来自我们内部服务器和外部员工的中继邮件(TLS 和用户身份验证)。这是描述的设置和简短的文字,它多年来一直正常工作。
不,我们最重要的客户之一(员工人数超过 15,000 人)遇到了问题。他们拒绝了我们外部员工的电子邮件!不是因为我们的邮件网关有黑名单,而是因为 中的 IP 被列入了黑名单Received E-Mail Header
。电子邮件是不是直接发送到目标 SMTP,当然它是由我们的 SMTP(未列入黑名单)中继的。
SenderX: IP (blacklisted at http://www.barracudacentral.org)
-->
Our SMTP Gateway: official IP, (not blacklisted)
-->
Target SMTP: accepts mail from our SMTP, but not from SenderX
我认为,由于检查“已接收”IP 地址而拒绝邮件的情况很少见。RFC 规定必须添加这些地址。
RFC 5432: 3.7.2. 网关中的接收行
当将消息转发到互联网环境或从互联网环境转发消息时,网关必须在前面添加一个“已接收:”行,但不得以任何方式更改已在标头部分中的“已接收:”行。
我应该向我们客户的邮政局长提出什么建议?
答案1
我应该向我们客户的邮政局长提出什么建议?
最重要的建议是修复损坏的过滤配置。世界上一半的人都在发送带有内部(大部分是 RFC-1918)地址的邮件Received:
,根据这些标准阻止邮件确实是一个坏主意。
不过,你的问题并不新鲜。时不时地,一些过于热情的邮政局长会搞砸过滤器,所以人们找到了通过简单地重写标题来解决这个问题的方法。使用 postfix,你可以使用 header_checks 来做到这一点 - 就像本文介绍。我几乎从未见过 exim,但我希望它具有一些类似的功能。
答案2
为什么您的外部用户不直接连接到 Exchange 服务器(通过 RPC over HTTP、POP 或 IMAP)?如果是这样,您就不会遇到这些问题。我的建议是将外部客户端配置为直接连接到 Exchange 服务器,然后它会像往常一样将电子邮件发送到网关服务器。