Amazon SES IP 在 DMARC 中未通过 SPF 检查
Amazon SES IP Fails SPF Check in DMARC
我将 Amazon SES 用于交易电子邮件,并使用 WP SES 插件与我的 WordPress 集成。
我的某些 IP 以 54.240.27
开头的电子邮件的 SPF 失败。这似乎是 Amazon SES IP。
我已将以下 SPF txt 添加到我的 DNS:v=spf1 include:_spf.google.com include:ofpad.com include:amazonses.com ~all
非常感谢任何帮助。
更新:
我按照architjn的指示在AWS中添加了MAIL FROM Domain,但问题仍然存在。
下面是在AWS中实现Mail From Domain后Gmail发送的DMARC。这是报告的人类可读版本:https://us.dmarcian.com/dmarc-xml/details/VANOJ4S6b8QGCinq/
<?xml version="1.0" encoding="UTF-8" ?>
<feedback>
<report_metadata>
<org_name>google.com</org_name>
<email>noreply-dmarc-support@google.com</email>
<extra_contact_info>https://support.google.com/a/answer/2466580</extra_contact_info>
<report_id>4375352491574064416</report_id>
<date_range>
<begin>1601078400</begin>
<end>1601164799</end>
</date_range>
</report_metadata>
<policy_published>
<domain>ofpad.com</domain>
<adkim>r</adkim>
<aspf>r</aspf>
<p>none</p>
<sp>none</sp>
<pct>100</pct>
</policy_published>
<record>
<row>
<source_ip>54.240.27.115</source_ip>
<count>9</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.35</source_ip>
<count>8</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>209.85.220.41</source_ip>
<count>39</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>ofpad.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.34</source_ip>
<count>10</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>209.85.220.41</source_ip>
<count>87</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>gmail.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.38</source_ip>
<count>3</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.116</source_ip>
<count>11</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.123</source_ip>
<count>6</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
</feedback>
SPF 始终被视为来自域。
Header From 和 From Domain 是两个不同的东西。
Header 发件人是电子邮件地址中@之后的部分。在你的例子中是 ofpad.com
。
但是发生的是它检查来自域的 SPF。在本例中为 us-west-2.amazonses.com
。
在 DMARC 中,它还会检查正在发送的邮件在 Header From 和 From Domain 中是否应该具有相同的域。在这种情况下这是不同的。
这是它失败的主要原因。在 DMARC 中称为 SPF 对齐。
要解决此问题,您必须转到您的 SES 控制台,在选择您的域后,您将在底部看到一个名为 From Domain
的部分。您应该在 ofpad.com
的子域上配置它,然后它将开始通过 SPF。这将使您的 SPF 放松 Aligned。
architjn 为我指明了正确的方向,我在 AWS 设置中添加了 Mail From
域,但问题仍然存在,因为我还验证了我的发件人电子邮件,该电子邮件未使用我域中来自域的邮件。显然,如果您同时验证电子邮件地址和电子邮件地址所属的域,则电子邮件地址的设置会覆盖域的设置。
所以我为域配置的来自域的邮件不适用于该电子邮件地址。
Amazon SES 要求您验证您的电子邮件地址或域。当您验证整个域时,您正在验证来自该域的所有电子邮件地址,因此您不需要单独验证来自该域的电子邮件地址。
我从 AWS 的已验证电子邮件中删除了属于该域的电子邮件地址,现在正在使用该域中配置的来自域的邮件。
这是按照 architjn 的指示在 AWS 中的 MAIL FROM 域。
我将 Amazon SES 用于交易电子邮件,并使用 WP SES 插件与我的 WordPress 集成。
我的某些 IP 以 54.240.27
开头的电子邮件的 SPF 失败。这似乎是 Amazon SES IP。
我已将以下 SPF txt 添加到我的 DNS:v=spf1 include:_spf.google.com include:ofpad.com include:amazonses.com ~all
非常感谢任何帮助。
更新: 我按照architjn的指示在AWS中添加了MAIL FROM Domain,但问题仍然存在。
下面是在AWS中实现Mail From Domain后Gmail发送的DMARC。这是报告的人类可读版本:https://us.dmarcian.com/dmarc-xml/details/VANOJ4S6b8QGCinq/
<?xml version="1.0" encoding="UTF-8" ?>
<feedback>
<report_metadata>
<org_name>google.com</org_name>
<email>noreply-dmarc-support@google.com</email>
<extra_contact_info>https://support.google.com/a/answer/2466580</extra_contact_info>
<report_id>4375352491574064416</report_id>
<date_range>
<begin>1601078400</begin>
<end>1601164799</end>
</date_range>
</report_metadata>
<policy_published>
<domain>ofpad.com</domain>
<adkim>r</adkim>
<aspf>r</aspf>
<p>none</p>
<sp>none</sp>
<pct>100</pct>
</policy_published>
<record>
<row>
<source_ip>54.240.27.115</source_ip>
<count>9</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.35</source_ip>
<count>8</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>209.85.220.41</source_ip>
<count>39</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>ofpad.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.34</source_ip>
<count>10</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>209.85.220.41</source_ip>
<count>87</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>gmail.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.38</source_ip>
<count>3</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.116</source_ip>
<count>11</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>54.240.27.123</source_ip>
<count>6</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>ofpad.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>ofpad.com</domain>
<result>pass</result>
<selector>ukez6fkocbm5wtdd7aqfx754ngfzaqs3</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>hsbnp7p3ensaochzwyq5wwmceodymuwv</selector>
</dkim>
<spf>
<domain>us-west-2.amazonses.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
</feedback>
SPF 始终被视为来自域。
Header From 和 From Domain 是两个不同的东西。
Header 发件人是电子邮件地址中@之后的部分。在你的例子中是 ofpad.com
。
但是发生的是它检查来自域的 SPF。在本例中为 us-west-2.amazonses.com
。
在 DMARC 中,它还会检查正在发送的邮件在 Header From 和 From Domain 中是否应该具有相同的域。在这种情况下这是不同的。
这是它失败的主要原因。在 DMARC 中称为 SPF 对齐。
要解决此问题,您必须转到您的 SES 控制台,在选择您的域后,您将在底部看到一个名为 From Domain
的部分。您应该在 ofpad.com
的子域上配置它,然后它将开始通过 SPF。这将使您的 SPF 放松 Aligned。
architjn 为我指明了正确的方向,我在 AWS 设置中添加了 Mail From
域,但问题仍然存在,因为我还验证了我的发件人电子邮件,该电子邮件未使用我域中来自域的邮件。显然,如果您同时验证电子邮件地址和电子邮件地址所属的域,则电子邮件地址的设置会覆盖域的设置。
所以我为域配置的来自域的邮件不适用于该电子邮件地址。
Amazon SES 要求您验证您的电子邮件地址或域。当您验证整个域时,您正在验证来自该域的所有电子邮件地址,因此您不需要单独验证来自该域的电子邮件地址。
我从 AWS 的已验证电子邮件中删除了属于该域的电子邮件地址,现在正在使用该域中配置的来自域的邮件。
这是按照 architjn 的指示在 AWS 中的 MAIL FROM 域。