如果我从我的网站(在私人服务器上)向 autoreply@dmarctest.org 发送邮件,我会收到以下报告:
<record>
<row>
<source_ip>x.x.x.x</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>mydomain.com</domain>
<result>pass</result>
</spf>
<dkim>
<domain>mydomain.com</domain>
<result>pass</result>
</dkim>
</auth_results>
</record>
Run Code Online (Sandbox Code Playgroud)
identifiers/header_from AND auth_results/spf/domain 都是 mydomain.com,我的发件人(和返回路径)是 user@mydomain.com
单独的 SPF 测试还可以,但是 dmarc (policy_evaluate/spf) 失败了,我不明白为什么......
我的 DNS 记录 (SPF/DMARC):
"v=spf1 a mx include:mx.ovh.com -all"
"v=DMARC1\; p=reject\; sp=none\; rua=mailto:postmaster@mydomain.com\; rf=afrf\; pct=100\; ri=86400"
Run Code Online (Sandbox Code Playgroud)
小智 6
<policy_evaluated><spf>fail尽管 SPF 检查已通过( ),但 DMARC 在 SPF 策略 ( ) 上失败的原因<auth_results><spf><result>pass是您的 SMTP“mailFrom”(信封 MAIL From或RFC 5321.MailFrom)和标头“From”字段未对齐。我无法从您发布的摘录中确定,但这是可能的答案。
例如,如果您的邮件系统将 设为envelope MAIL From,<account@mail.provider.tld>但您header From说回复地址是<account@mydomain.tld>域,则域不一致,并且 DMARC 对 SPF 的评估将失败,即使您已将其包含mail.provider.tld在 SPF 记录中。
这些文章可能会有所帮助:
正如 Henry 所说,您只需要两项测试(SPF 或 DKIM)之一保持一致即可让 DMARC 通过。
我对那个测试位置不太了解,我用它mailtest@unlocktheinbox.com作为主要的电子邮件测试器。除此之外,如果您的 SPF 未对齐,DMARC 可能会失败,这称为 ASPF 测试。DMARC 需要 SPF、DKIM 或两者。由于您的 SPF 正在运行,唯一想到的就是您的 ASPF 测试可能失败,或者测试仪可能存在错误。我确实通过该测试测试了我的电子邮件,它确实表明我通过了 DMARC。