![DMARC 电子邮件 SPF policy_evaluated 和 auth_result 状态不一致](https://linux22.com/image/1397569/DMARC%20%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%20SPF%20policy_evaluated%20%E5%92%8C%20auth_result%20%E7%8A%B6%E6%80%81%E4%B8%8D%E4%B8%80%E8%87%B4.png)
我们服务中发送的部分(但不是全部)电子邮件被 gmail 标记为网络钓鱼,被 hotmail 标记为垃圾邮件。
被标记为网络钓鱼的电子邮件是由部署在 EC2 VM 上的应用程序发送的,该应用程序使用 amazon SES 进行实际发送。该应用程序发送其他未被标记的电子邮件(我们目前有 4 种由该应用程序发送的电子邮件)。
我们还有一个用户使用托管在 OVH 上的 MS Exchange 帐户从该域发送电子邮件,这就是 spf 记录包含 ovh 条目的原因。
我们在域上配置了以下记录:
_amazonses.mydomain.com. 1799 IN TXT "JiAZ9E5gIc7VbPfMI4rYSBGZJeTe3lTF+eigtVUF1fg="
_amazonses.mydomain.com. 1799 IN TXT "vkSOtQqrtz2frIPg+6SeU7CmCenkTPjjvZdCQe/u0Qk="
_dmarc.mydomain.com. 299 IN TXT "v=DMARC1\;p=none\;rua=mailto:[email protected]"
2anucjune6cx5dfjwtpg5w7xi5bivkdi._domainkey.mydomain.com. 1799 IN CNAME 2anucjune6cx5dfjwtpg5w7xi5bivkdi.dkim.amazonses.com.
5m7pppm63mxlxz3w3al3juxlgwb4j67m._domainkey.mydomain.com. 1799 IN CNAME 5m7pppm63mxlxz3w3al3juxlgwb4j67m.dkim.amazonses.com.
7tpgaubzvve5ekkq3pyu7rhmrxhgif5f._domainkey.mydomain.com. 1799 IN CNAME 7tpgaubzvve5ekkq3pyu7rhmrxhgif5f.dkim.amazonses.com.
mydomain.com. 299 IN TXT "v=spf1 a mx include:amazonses.com include:mx.ovh.com ~all"
mydomain.com. 299 IN SPF "v=spf1 a mx include:amazonses.com include:mx.ovh.com ~all"
以下是我们从 Google 获得的 DMARC 报告:
<record>
<row>
<source_ip>54.240.6.219</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>mydomain.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>mydomain.com</domain>
<result>pass</result>
</dkim>
<spf>
<domain>eu-west-1.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
以下是来自 hotmail.com 的邮件
<record>
<row>
<source_ip>54.240.6.212</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>mydomain.com</header_from>
</identifiers>
<auth_results>
<spf>
<domain>eu-west-1.amazonses.com</domain>
<result>pass</result>
</spf>
<dkim>
<domain>mydomain.com</domain>
<result>pass</result>
</dkim>
</auth_results>
如您所见,policy_evaluated 的 SPF 条目具有fail
状态,但 auth_results 将 spf 列为pass
。什么可以解释不一致的状态?这种不一致是否是我们的邮件被标记为网络钓鱼/垃圾邮件的根源?
答案1
这似乎是由于 DMARC 域名对齐问题造成的。报告指出,SPF 身份验证结果的域名为“eu-west-1.amazonses.com”,与“mydomain.com”的 header_from 不一致。我不知道 DMARC 为什么使用 amazonses.com 域名进行 SPF 评估。我遇到了同样的问题,但还没弄清楚如何解决。从DMARC 草案:
Example 3. This record indicates a single message matching this set
of data points. The DMARC disposition for this message was "reject"
based on DMARC aligned results for SPF and DKIM of "fail" and the
domain's reject policy. There was no DKIM signature on this message,
as in Example 1. The SPF authentication result was "pass" with a
MAILFROM domain of "classifiedads.com". The SPF domain is not
aligned with the header From domain, causing the DMARC aligned SPF
result to be "fail".
<record>
<row>
<source_ip>65.61.105.5</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>reject</disposition>
<dkim>fail</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>facebook.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain></domain>
<result>none</result>
</dkim>
<spf>
<domain>classifiedads.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
答案2
这不太可能是您的邮件被标记为网络钓鱼/垃圾邮件的原因。您的 <policy_evaluated> 元素显示您正在传递 DKIM,因此您正在整体传递 DMARC。
policy_evaluated 的 SPF 条目具有失败状态,但 auth_results 列出的 spf 为通过。如何解释不一致的状态?
auth_results 不考虑标识符对齐,而整体 DMARC 评估则考虑,这就是为什么 SPF 的 auth_results 可以通过而整体 SPF 结果可能失败的原因。
但是,为什么 SPF 是针对 amazonses.com 域而不是您的域进行评估的呢?与 DKIM 不同,SPF 不会验证发件人标头中的域名(即您的域)。它验证 SMTP 发件人的 IP 地址。在本例中,这是一个亚马逊 IP 地址,它正确地通过了 SPF。
参考:
https://www.rfc-editor.org/rfc/rfc7489
http://sesblog.amazon.com/post/Tx3IREZBQXXL8O8/SPF-and-Amazon-SES