Amazon SES 中的 DKIM 问题排查 - Amazon Simple Email Service

Amazon SES 中的 DKIM 问题排查

本节列出了在 Amazon SES 中配置 DKIM 身份验证时可能会遇到的一些问题。如果您尝试设置 DKIM 并且遇到问题,请查看下面的可能原因和解决方法。

您已成功设置 DKIM,但是您的邮件未经过 DKIM 签名

如果您使用了 Easy DKIMBYODKIM 为域配置 DKIM,但是您发送的邮件未经过 DKIM 签名,请执行以下操作:

  • 请确保为适当的身份启用了 DKIM。要在 Amazon SES 控制台中为某个身份启用 DKIM,请在 Identities (身份) 列表中选择电子邮件域。在域的详细信息页面上,展开 DKIM,然后选择 Enable (启用) 以启用 DKIM。

  • 确保您没有从同一域上的经过验证的电子邮件地址发送邮件。如果您已为某个域设置 DKIM,则从该域发送的所有邮件都经过 DKIM 签名,但您单独验证的电子邮件地址除外。单独验证的电子邮件地址使用单独的设置。例如,如果您已为域 example.com 配置 DKIM,并且您单独验证了电子邮件地址 mary@example.com(但没有为该地址配置 DKIM),则您从 mary@example.com 发送的电子邮件将在不经过 DKIM 身份验证的情况下发送。您可以通过从自己账户的身份列表中删除电子邮件地址身份,来解决此问题。

  • 如果在多个 AWS 区域中使用相同的身份,则必须为每个区域单独配置 DKIM。同样,如果您将同一个域与多个 AWS 账户结合使用,则必须为每个账户配置 DKIM。如果您删除某个特定区域或账户所需的 DNS 记录,则 Amazon SES 将在该区域或账户中禁用 DKIM 签名。如果 DKIM 签名变为禁用状态,Amazon SES 会通过电子邮件向您发送通知。

在 Amazon SES 控制台中,域的 DKIM 详细信息显示:DKIM: waiting on sender verification...(DKIM: 正在等待发件人验证...) DKIM 验证状态:等待验证。

如果您完成 Easy DKIMBYODKIM - 自带 DKIM 中的过程来为域配置 DKIM,但 Amazon SES 控制台仍指示 DKIM 验证处于等待状态,请执行以下操作:

  • 等待最多 72 小时。在极少数情况下,DNS 记录可能需要一些时间才能对 Amazon SES 可见。

  • 确认 CNAME 记录(对于 Easy DKIM)或 TXT 记录(对于 BYODKIM)使用了正确的名称。某些 DNS 提供商会自动将域名附加到您创建的记录。例如,如果您创建的记录中带有 example._domainkey.example.com 名称,则 DNS 提供商可能会将您的域名添加到此字符串的结尾,从而生成 example._domainkey.example.com.example.com。有关更多信息,请参阅您的 DNS 提供商的文档。

您收到一封来自 Amazon SES 的电子邮件,其中声明您的 DKIM 设置已被(或将被)撤销。

这意味着 Amazon SES 无法再在您的 DNS 服务器上找到所需的 CNAME 记录(如果您使用了 Easy DKIM)或所需的 TXT 记录(如果您使用了 BYODKIM)。通知电子邮件将告诉您在撤销 DKIM 设置状态和禁用 DKIM 签名之前必须重新发布 DNS 记录的时间。如果 DKIM 设置已撤销,您必须从头重新开始 DKIM 设置过程。

尝试设置 BYODKIM 时,DKIM 验证过程失败。

确保您的私有密钥使用正确的格式。私有密钥必须为 PKCS #1 或 PKCS #8 两种格式之一,并使用 1024 位或 2048 位 RSA 加密。此外,私有密钥必须采用 base64 编码。

设置 BYODKIM 时,当尝试为域指定公有密钥时,您收到 BadRequestException 错误。

如果收到 BadRequestException 错误,请执行以下操作:

  • 确保为公有密钥指定的选择器至少包含 1 个字母数字字符并且小于等于 63 个字母数字字符。选择器不能包含句点,也不能包含其他符号或标点符号。

  • 请确保已从公有密钥中删除页眉和页脚行,并且已从公有密钥中删除所有换行符。

在使用 Easy DKIM 时,您的 DNS 服务器成功返回了 Amazon SES DKIM CNAME 记录,但为域验证 TXT 记录返回了 SERVFAIL

您的 DNS 提供商可能无法重定向 CNAME 记录。Amazon SES 和 ISP 会查询 TXT 记录。为遵守 DKIM 规范,您的 DNS 服务器必须能够响应 TXT 记录查询以及 CNAME 记录查询。如果您的 DNS 提供商无法响应 TXT 记录查询,替代方法是使用 Route 53 作为您的 DNS 托管提供商。

您的电子邮件包含两个 DKIM 签名

包含 d=amazonses.com 的额外 DKIM 签名是 Amazon SES 自动添加的。您可以忽略它。