如果 Amazon SES 电子邮件未通过 SPF 对齐或 DKIM 对齐的 DMARC 验证,我该怎么办?

2 分钟阅读
0

我使用 Amazon Simple Email Service(Amazon SES)发送的电子邮件未通过发件人策略框架(SPF)对齐或域名密钥标识的邮件(DKIM)对齐的基于域的邮件身份验证、报告和符合性(DMARC)验证。如何解决此问题?

简短描述

DMARC 是一种电子邮件身份验证协议,其使用 SPF 和 DKIM 来检测电子邮件欺骗。为了符合 DMARC,邮件必须通过 SPF 和/或 DKIM 进行身份验证。

对于 SPF 对齐或 DKIM 对齐的 DMARC 验证,电子邮件标头中的关键组成部分是:

  • 向邮件收件人显示的 From 地址
  • 指明邮件来源地的 Mail FromEnvelope From 地址
  • DKIM 签名中的 d=

DMARC 通过将 Mail FromEnvelope From 域与 From 域匹配来检查 SPF 对齐。必须满足下列对齐之一:

  • **严格对齐:**Mail FromEnvelope From 域与 From 域相同。
  • **宽松对齐:**Mail FromEnvelope From 域是 From 域的子域。

DMARC 通过匹配 DKIM 签名中的 d= 域和 From 域来检查 DKIM 对齐。必须满足下列对齐之一:

  • **严格对齐:**d= 域与 From 域相同。
  • **宽松对齐:**d= 域是 From 域的子域。

解决方案

要通过 DMARC 验证,电子邮件必须符合 SPF 认证或 DKIM 身份验证。

在 DMARC 记录中对 SPF 或 DKIM 使用宽松对齐

对 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=s,则域使用严格对齐。

对于 DKIM,如果记录不包含 adkim 字符串,或者记录包含字符串 adkim=r,则域使用宽松对齐。如果记录包含字符串 adkim=s,则域使用严格对齐。

从严格对齐更改为宽松对齐必须由系统管理员执行。

通过 SPF 符合 DMARC

要获取 SPF 记录,请运行下列命令:

nslookup -type=TXT example.com

该命令返回的 SPF 记录类似于以下内容:

"v=spf1 include:amazonses.com ~all"

要通过 SPF 确保邮件符合 DMARC,请检查以下内容:

1.    邮件必须通过 SPF 检查。这意味着域的 SPF 记录必须具有“include: amazonses.com”,这会授权 Amazon SES 代表您的域发送电子邮件。

2.    电子邮件标头的 From 地址中的域必须与发送邮件服务器向接收邮件服务器指定的 Mail FromEnvelope From 域一致。

在使用 Amazon SES 发送电子邮件时,Mail FromEnvelope From 域默认为 amazonses.com,而 From 域是您验证的域。这些值未通过 SPF 对齐和 DMARC 验证。

要解决此问题,必须设置自定义 MAIL FROM 域,以使 Mail From 值成为已验证域的子域。例如,如果已验证域(From 域)是 example.com,则可以将自定义 Mail From 域设置为 mail.example.com。这些值会通过 SPF 对齐和 DMARC 验证。

**注意:**使用 Amazon SES,将 SPF 记录添加为自定义 Mail From 子域的一部分。有关说明,请参阅 Configuring the MAIL FROM domain

通过 DKIM 符合 DMARC

当在 Amazon SES 中使用 Easy DKIM 时,您会获得三条 CNAME 记录。要检查相应的 DKIM 记录,请对每个 CNAME 运行下列命令:

nslookup -type=CNAME example1._domainkey.example.com

该命令会返回 DKIM 记录:

example1.dkim.amazonses.com.

要确保邮件通过 DKIM 符合 DMARC,请检查确保以下各项:

1.    邮件必须具有有效的 DKIM 签名。

2.    电子邮件标头中的 From 地址必须与 DKIM 签名中的 d= 域一致。

最好是设置 Easy DKIM,因为此功能允许您通过 DKIM 满足这两个 DMARC 验证要求。您也可以选择手动签署电子邮件,但是 Amazon SES 不会验证您构建的 DKIM 签名。


AWS 官方
AWS 官方已更新 2 年前