向外部收件人发送电子邮件时 SPF 通过,但向内部收件人发送电子邮件时失败

向外部收件人发送电子邮件时 SPF 通过,但向内部收件人发送电子邮件时失败

我已经为我们的域设置了 SPF DNS 记录。我使用了我们的外部 IP 地址,这似乎运行良好,当我从 Outlook 向外部收件人发送电子邮件时,SPF 会通过,因为原始服务器 IP 匹配。

现在,我们还有 8 台 Web 服务器通过同一个 Exchange 2016 服务器发送电子邮件,但是 SPF 失败了,因为原始发件人的 IP 是 Web 服务器的内部网络 IP(即 192.168.1.14 等)。我无法想象必须将我们的内部子网放入 SPF 记录中。

我错过了什么?

答案1

不,您不应将 RFC1918 网络添加到您的 SPF 记录中。相反,您应该将 Exchange 服务器配置为忽略 SPF 检查并允许你的 Web 服务器进行中继。如果你信任你的网络应用程序,你可以简单地允许匿名中继来自您的网络服务器。

匿名中继是许多企业的共同需求,这些企业拥有内部 Web 服务器、数据库服务器、监控应用程序或其他可生成电子邮件消息但无法实际发送这些消息的网络设备。

在 Exchange Server 中,您可以在邮箱服务器上的前端传输服务中创建专用的接收连接器,以允许从特定的内部网络主机列表进行匿名中继。

文章对此进行了更详细的描述,但这里总结了用于允许从两个服务器(192.168.1.14192.168.1.15)进行匿名中继的 Exchange 命令行管理程序命令:

New-ReceiveConnector -Name "Web Servers Relay" -TransportRole FrontendTransport ` 
    -Custom -Bindings 0.0.0.0:25 -RemoteIpRanges 192.168.1.14,192.168.1.15
Set-ReceiveConnector "Web Servers Relay" -PermissionGroups AnonymousUsers
Get-ReceiveConnector "Web Servers Relay" `
| Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" `
    -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

如果您不想允许匿名中继,则您的 Web 应用程序将需要使用经过身份验证的 SMTP,但由于您最初提议将这些服务器添加到您的 SPF 记录中,因此使用匿名中继可能对您来说没问题。

相关内容