GMAIL 是否错误地使 SPF 失败?

OzP*_*PHB 6 email google spf dmarc

鼓励0365 邮件用户在其 SPF 记录中使用include:spf.protection.outlook.com -all。

我遵循了这个指导。我公司的 spf 记录说:
v=spf1 include:spf.protection.outlook.com -all

spf.protection.outlook.com 记录以 include:spfa.protection.outlook.com 结尾 -all 以 include:spfb.protection.outlook.com 结尾

其中每个都包含一组 CIDR,用于 Outlook.com 在发送电子邮件时使用的 IP。

但是,我从 google.com 收到了 DMARC 报告,表明某个 IP 的 SPF 失败,该 IP 实际上被 SPF 记录中的一个包含项所涵盖。我认为这是不正确的,但经常发生。

下面是一个例子:

    source_ip>104.47.117.233</source_ip>

<count>1</count>


-<policy_evaluated>

<disposition>none</disposition>

<dkim>pass</dkim>

<spf>fail</spf>
Run Code Online (Sandbox Code Playgroud)

被拒绝的 ip 是 ip4:104.47.0.0/17 的一部分,它是 spfb.protection.outlook 记录的一部分:

spfb.protection.outlook.com。394 在 TXT "v=spf1 ip6:2a01:111:f400::/48 ip4:23.103.128.0/19 ip4:23.103.198.0/23 ip4:65.55.88.0/24 ip4:10.104.ip4 :10.04. 200.0/21 ip4:23.103.208.0/21 ip4:23.103.191.0/24 ip4:216.32.180.0/23 ip4:94.245.120.64/26 -all"

那么,为什么 Google 的电子邮件服务器会将此视为 SPF 失败?

这不是一个孤立的例子 - 我经常收到与 SPF 记录中包含的 IP 相关的 SPF 失败通知。

OzP*_*PHB 6

我已经想通了。毫不奇怪,是我误解了报告,而不是 Google 将他们的 DMARC 实施弄错了 :)

我感到困惑的策略评估部分中的 SPF 结果(在 OP 中发布的副本)是 DMARC考虑对齐评估的 SPF 结果。

这句话在这里说明了问题:

请注意,auth_results 中的 SPF 和 DKIM 结果是原始结果,与 Identifier Alignment 无关;使用标识符对齐的 DMARC 评估结果在 policy_evaluated 部分。

我检查了记录的其余部分,发现同一记录的原始结果正确地是 SPF 通过。

因此,DMARC 报告告诉我的是,虽然 SPF 结果确实来自 Outlook.com(因此是原始“通过”),但返回路径标头与我的发送域不匹配,这会导致 DMARC评估SPF 失败. 这里的另一个参考。

基本上,不要试图直接阅读 XML 报告——它们对人类来说很难! 我发现这个DMARC xml 解析器可以让你清楚地看到 DMARC 报告试图告诉你什么。