我们正在使用 Exchange 2010,并且已经为我们的授权邮件服务器 IP 设置了 SPF 记录。作为使用我们的域名进行的测试,我尝试从互联网上的另一台计算机发送电子邮件,该计算机的 IP 未列在 SPF 记录中。其他电子邮件服务由于 SPF 失败而拒绝了该邮件,但我们自己的交易所接受了它。这告诉我我们的交易所不会拒绝未通过 SPF 记录的电子邮件。我在我们的交易所上启用了 SenderID 来拒绝未通过 senderID 的电子邮件,但没有任何区别。
下面是我从邮件头中提取的 SPF 信息,该邮件头未通过 SPF 但被我们的 Exchange 接受。
已接收 SPF:无(exchange2010.domainname:user@domainname 未指定允许的发件人主机)
答案1
如果您的 Exchange 服务器尊重其他域的 SPF 记录而不是您的域的 SPF 记录,那么您可能已将内部 DNS 设置为对您的域名具有权威性,但您的内部 DNS 服务器中没有 SPF 记录。
解决方案:将您的 SPF 记录添加到您的内部 DNS 服务器。
答案2
当 SPF 状态 = FAIL 时,Exchange 发件人 ID 代理将采取行动。您的测试电子邮件的 SPF 状态 = NONE。没有 SPF 记录,因此发件人 ID 代理无法根据 SPF 记录采取任何行动,因为它不存在。
答案3
0) 创建一个包含您的服务器和您要保护的域的 FQDN 的 SPF 记录。例如:
richter.hu v=spf1 ip4:82.131.210.2 ip4:195.228.143.98 -all
1) 等待 dns ttl 时间将 spf 记录传播到互联网 dns 服务器上。您可以使用 mxtoolbox.com 检查它(更改为 spf 记录)。
2)安装运输代理
get-transport agent & $env:ExchangeInstallPath\Scripts\Install-AntiSpamAgents.ps1
并在边缘服务器上重新启动 ms exchange 传输服务。
3)ipconfig /flushdns
在您的边缘服务器上运行。
4)
set-senderidconfig -SpoofedDomainAction Reject
set-senderidconfig -TempErrorAction Reject
5)在边缘服务器上重新启动 ms exchange 传输服务。
6)使用 powershell send-mailmessage cmd let 从外部 smtp 服务器发送测试邮件。