Gmail SPF基于客户端IP失败

Gmail无法根据客户端IP进行SPF检查。 这些是相关的标题:

Received-SPF: fail (google.com: domain of [email protected] does not designate 164.77.240.58 as permitted sender) client-ip=164.77.240.58; Received: from johndoe (unknown [164.77.240.58]) by mail.example.com (Postfix) with ESMTP id 993643FE2D 

客户端IP(164.77.240.58)是johndoe电脑的IP地址。 发件人IP(mail.example.com的IP)包含在SPFlogging中。

为什么Gmail基于客户端IP而不是发件人IP失败? 这是SPF应该如何工作?

首先,拉取example.com的spflogging:

 $ dig -t spf mail.example.com 

确认example.com位于发件人列表中。 你的spflogging应该是这样的:

 "v=spf1 a:mail.example.com a:cname.example.com -all" 

取任何列出的域名并对其进行DNS查询以获取IP地址:

 $ dig mail.example.com 

然后做一个PTR查找获取IP的反向DNS名称:

 $ dig -x XX.XX.XX.XX 

反向IP查找应该匹配spflogging中列出的logging之一。 尽pipe我们可以看到发生了什么,但是从spflogging开始将会很有帮助。

是的,Google在识别SPF故障方面是正确的。 应该检查的IP地址是连接到谷歌的邮件服务器的地址。 由于没有收到Google头,我怀疑您的邮件服务器正在检查连接上的SPF。 它应该只检查SPF从Internet的未经身份validation的连接。 本地连接和authentication连接应该绕过SPFvalidation。

SPF旨在确保发送域允许发送计算机。 通常情况下一个域将有1或2个邮件服务器来处理所有的电子邮件发送到互联网或从互联网接收。 这些地址应该是域名的SPFlogging中列出的地址。

在这种情况下, johndoe似乎连接到域的邮件服务器。 如果服务器不在域的networking上,则通常在提交端口上使用经authentication的连接(587)。 邮件服务器应该将消息转发给gmail,并且SPF应该通过。 如果SPF仍然失败,则需要更正SPFlogging以包含邮件服务器的IP。 有几种机制可以使用。

我的电子邮件政策确保从我的域发送的所有合法邮件都将通过SPF。 有一些代表我的用户转发消息的服务会失败SPF。 但是,从validationDMARC服务器收到的logging失败都是垃圾邮件发送者。