为什么 spf 在 Google 的 DMARC 报告中失败?

为什么 spf 在 Google 的 DMARC 报告中失败?

我最近收到了 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.comdomainmail.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.commail.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>

相关内容