我最近收到了 Google 发来的一份 DMARC 报告,提醒我来自属于 Amazon SES 的 IP 地址的邮件出现了一些 SPF 故障。示例记录如下(我已将我们的域名替换为 example.com。):
<record>
<row>
<source_ip>54.240.27.187</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>example.com</domain>
<result>pass</result>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
</dkim>
<spf>
<domain>mail.example.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
SPF值为时,是否因为该header_from
值是而导致 SPF 失败?example.com
domain
mail.example.com
我们使用 Amazon WorkMail 和 Amazon SES 发送手动和自动电子邮件。From address
通常是[email protected]
,我们将MAIL FROM
域设置为mail.example.com
。 因此,我有点困惑为什么 Google 会将header_from
域报告为example.com
而不是。 我们为和mail.example.com
都设置了适当的 SPF 记录。example.com
mail.example.com
此外,我还尝试使用 Amazon WorkMail 和 Amazon SES 向 Gmail 地址发送测试电子邮件。在这两种情况下,SPF 都通过了,DKIM 和 DMARC 也通过了。
答案1
DMARC 比较RFC5322.From 域与经过 SPF 认证的域。在您的报告中,我们可以看到 RFC5322.From 域为 ,example.com
而经过 SPF 认证的域为mail.example.com
。
该aspf
标签用于指示 DMARC SPF 对齐测试是否应该是严格(s
)还是宽松(r
),其中宽松是默认设置。
aspf=r
具有值或没有标签的DMARC 记录集aspf
将验证 RFC5322。来自组织域与 SPF 认证的组织域匹配。您的记录将通过此对齐,因为example.com
两者的组织域都是相同的。
具有值的 DMARC 记录aspf=s
将验证 RFC5322.From 域和 SPF 认证域的精确 DNS 域匹配。
DMARC 测试失败,因为aspf=s
您的 DMARC 记录中配置的和的 RFC5322.From 域example.com
以及的 SPF 认证域mail.example.com
不一样。
答案2
对我来说,当 Google 自动将电子邮件从一个 Gmail 帐户转发到第二个 Gmail 帐户时,DKIM 似乎出现故障。
我想 Google 应该知道在这种情况下 DOMAIN 应该是原始域,但是他们检查的是他们自己的 gmail.com 域。他们的另一个选择是重新创建新的 Dkim 签名,删除原始签名。
目前,Gmail 报告中的某些电子邮件显示为 DMARC 失败,因为 SPF 检查报告的 SPF 域(自行通过)是 gmail.com,这与 example.com 不同,或者根据 AWS SES 指南通过 DNS 记录设置的 MAIL_FROM 为 mail.example.com。
以下是完整的每日报告,其中 IP“209.85.220.41”由于在 SPF 检查中使用“gmail.com”域而导致 DMARC 失败:
<?xml version="1.0" encoding="UTF-8" ?>
<feedback>
<report_metadata>
<org_name>google.com</org_name>
<email>[email protected]</email>
<extra_contact_info>https://support.google.com/a/answer/2466580</extra_contact_info>
<report_id>999999999999999999</report_id>
<date_range>
<begin>1686441600</begin>
<end>1686527999</end>
</date_range>
</report_metadata>
<policy_published>
<domain>example.com</domain>
<adkim>s</adkim>
<aspf>r</aspf>
<p>reject</p>
<sp>quarantine</sp>
<pct>100</pct>
<np>quarantine</np>
</policy_published>
<record>
<row>
<source_ip>209.85.220.41</source_ip>
<count>6</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>example.com</domain>
<result>pass</result>
<selector>AWS_CNAME_AUTHENTICATION_SELECTOR</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>AWS_OWN_AUTHENTICATION_SELECTOR</selector>
</dkim>
<spf>
<domain>gmail.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.8.60</source_ip>
<count>2</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>example.com</domain>
<result>pass</result>
<selector>AWS_CNAME_AUTHENTICATION_SELECTOR</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>AWS_OWN_AUTHENTICATION_SELECTOR</selector>
</dkim>
<spf>
<domain>mail.example.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.8.176</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>example.com</domain>
<result>pass</result>
<selector>AWS_CNAME_AUTHENTICATION_SELECTOR</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>AWS_OWN_AUTHENTICATION_SELECTOR</selector>
</dkim>
<spf>
<domain>mail.example.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.8.237</source_ip>
<count>2</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>example.com</domain>
<result>pass</result>
<selector>AWS_CNAME_AUTHENTICATION_SELECTOR</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>AWS_OWN_AUTHENTICATION_SELECTOR</selector>
</dkim>
<spf>
<domain>mail.example.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.8.13</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>example.com</domain>
<result>pass</result>
<selector>AWS_CNAME_AUTHENTICATION_SELECTOR</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>AWS_OWN_AUTHENTICATION_SELECTOR</selector>
</dkim>
<spf>
<domain>mail.example.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
</feedback>