Gmail SPF 根据客户端 IP 失败

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,包含在 SPF 记录中。

为什么 Gmail 会根据客户端 IP 而不是发件人 IP 失败?SPF 应该是这样工作的吗?

答案1

首先,拉取 example.com 的 spf 记录:

$ dig -t spf mail.example.com

验证 example.com 是否在发件人列表中。您的 spf 记录应如下所示:

"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 查找应与 spf 记录中列出的记录之一匹配。不过,从 spf 记录开始会很有帮助,这样我们就能知道发生了什么。

答案2

是的,谷歌错误地将邮件标记为垃圾邮件(SPF Softfail),并指出发件人的客户端 IP 地址不是授权发件人。这在多个层面上都是错误的。

有问题的邮件并未发送到 Google 托管的邮箱。相反,gmail 用户已将 gmail 配置为从托管在其他服务上的帐户获取邮件 (POP3),并将这些邮件发送到 gmail 用户的收件箱中。

因此,这些邮件实际上永远不会被 Google 邮件服务器接收。这些邮件是由 Google 提取的,而不是接收的。Google 不应该重写邮件标头,就好像他们收到了邮件一样。如果他们希望应用过滤器,他们应该只读取托管帐户的(非 Google)邮件服务器编写的标头。

基于客户端 IP 的 SPF Softfail:Google 报告:“spf=softfail (googlecom: 正在转换的域[电子邮件保护]未指定 xxxx (客户端 IP) 作为允许的发件人)”

客户端 IP 是发件人实际位置(家庭、公司、咖啡店)的互联网地址。不可能将所有可能的客户端 IP 都包含在 spf 记录中。SPF 检查应仅考虑将邮件发送到收件人邮件服务器的邮件服务器的 IP,在本例中为非 Google 服务器。

在此示例中,Debi 是 Gmail 用户。Debi 已将 Gmail 配置为从托管在 supercp.com 上的另一个邮箱“editor”获取消息。Shawn 向 Editor 发送了一条消息,该消息在 supercp.com 上收到。Debi 的 Gmail 使用 POP3 连接以下载该消息。Google 根据 Shawn 使用 Thunderbird 邮件客户端发送消息时所在的 IP 地址(住宅 ISP WAN 地址)将其标记为垃圾邮件。

电子邮件标头示例

答案3

是的,Google 识别 SPF 故障是正确的。应检查的 IP 地址是连接到 Google 邮件服务器的地址。由于没有收到 Google 的标头,我怀疑您的邮件服务器正在检查连接的 SPF。它应该只检查来自 Internet 的未经身份验证的连接的 SPF。本地连接和经过身份验证的连接应该绕过 SPF 验证。

SPF 旨在确保发送计算机得到发送域的许可。通常,一个域会有 1 或 2 个邮件服务器来处理发送到互联网或从互联网接收的所有电子邮件。这些地址应该是域的 SPF 记录中列出的地址。

在这种情况下,johndoe似乎正在连接到域的邮件服务器。如果服务器不在域的网络上,则通常在提交端口 (587) 上使用经过身份验证的连接。然后邮件服务器应将邮件转发到 Gmail,SPF 应该会通过。如果 SPF 仍然失败,则需要更正 SPF 记录以包含邮件服务器的 IP。有几种机制可以使用。

我的电子邮件政策确保从我的域发送的所有合法邮件都将通过 SPF。有些服务会代表我的用户转发邮件,但这些服务会失败。但是,我从服务器验证中收到的失败记录DMARC都是垃圾邮件发送者发送的。

答案4

Google 将此报告为 SPF 失败是错误的,因为 Google 无法知道最后一跳是什么,因此他们无法正确评估 SPF 策略。获取的每条消息都将始终不符合 SPF 策略。

Google 现在为未通过或缺少 SPF 和 DKIM 的邮件添加了额外的“小心处理此邮件”警告。这意味着如果您使用 Gmail 从其他邮件提供商获取邮件,您将在每封缺少 DKIM 记录的邮件上收到此警告,无论它是否应该正确通过 SPF 测试。

相关内容