我通过 Amazon Simple Email Service (Amazon SES) 发送的电子邮件未通过发件人策略框架 (SPF) 对齐或域名密钥标识的邮件 (DKIM) 对齐的基于域的邮件身份验证、报告和符合性 (DMARC) 验证。
简短描述
对于 SPF 和 DKIM 对齐,您必须满足严格对齐或宽松对齐的要求。
为了检查 SPF 是否对齐,DMARC 将 Mail From 或 Envelope From 域与 From 域进行匹配。严格对齐是指 Mail From 或 Envelope From 域与 From 域相同。宽松对齐是指 Mail From 或 Envelope From 域是 From 域的子域。
为了检查 DKIM 是否对齐,DMARC 将 DKIM 签名中的 d= 域与 From 域进行匹配。严格对齐是指 d= 域与 From 域相同。宽松对齐是指 d= 域是 From 域的子域。
解决方法
在 DMARC 记录中对 SPF 或 DKIM 使用宽松对齐
为了帮助您的电子邮件通过 DMARC 验证,请使用宽松对齐。
要确定域的 SPF 和 DKIM 之 DMARC 对齐,请运行以下命令:
nslookup -type=TXT _dmarc.example.com
该命令会返回 DMARC 记录,类似于以下内容:
"v=DMARC1;p=quarantine;pct=25;rua=mailto:hello@example.com"
对于 SPF 身份验证,如果记录不包含 aspf 标签或包含 aspf=r 字符串,则您的域使用宽松对齐。前面的示例不包含 aspf 标签,因此示例域使用宽松对齐。如果记录包含 aspf=s 字符串,则您的域使用严格对齐。
对于 DKIM,如果记录不包含 adkim 标签,或者包含字符串 adkim=r,则您的域使用宽松对齐。如果记录包含 adkim=s 字符串,则您的域使用严格对齐。
只有系统管理员才能从严格对齐更改为宽松对齐。
通过 SPF 身份验证遵守 DMARC
为了确保您的邮件通过 SPF 身份验证符合 DMARC,请验证以下配置:
- 您的 MAIL FROM 域的 SPF 记录必须包含 include:amazonses.com。
- 发送邮件服务器向接收邮件服务器指定的 MAIL FROM 域与电子邮件标题中的 FROM 地址相匹配。
当您使用 Amazon SES 发送电子邮件时,MAIL FROM 域默认是 amazonses.com 的子域。From 域是您发送电子邮件的域。如果 MAIL FROM 域与 From 域不匹配,则 SPF 对齐失败,无法进行 DMARC 验证。
要解决此问题,必须在发送电子邮件的经过验证的身份上设置自定义 MAIL FROM 域。自定义 MAIL FROM 域始终是父域的子域。例如,如果已验证域(From 域)是 example.com,则可以将自定义 MAIL FROM 域设置为 mail.example.com。
SPF 身份验证会检查 MAIL FROM 域,因此请将 SPF 记录添加到 Amazon SES 中的自定义 MAIL FROM 子域中。由于自定义 MAIL FROM 域为子域,因此您的子域必须对 SPF 使用宽松策略 (aspr=r)。
通过 DKIM 身份验证符合 DMARC
为确保您的邮件通过 DKIM 身份验证符合 DMARC,请验证以下配置:
- 邮件具有有效的 DKIM 签名并通过了 DKIM 检查。
- 电子邮件标头中的 From 地址与 DKIM 签名中的 d= 域相匹配。
当在 Amazon SES 中使用 Easy DKIM 时,您会获得三条 CNAME 记录。要检查相应的 DKIM 记录,请对每个 CNAME 记录运行以下命令:
nslookup -type=CNAME example1._domainkey.example.com
**注意:**将 example1._domainkey.example.com 替换为您的 CNAME 记录名称。
该命令会返回 DKIM 记录:
example1.dkim.amazonses.com.
最佳做法是使用 Easy DKIM,因为您可以通过 DKIM 满足这两个 DMARC 验证要求。您也可以选择手动签署电子邮件,但是 Amazon SES 不会验证 DKIM 签名。