Amazon SES 中的 DKIM 问题排查
本节列出了在 Amazon SES 中配置 DKIM 身份验证时可能会遇到的一些问题。如果您尝试设置 DKIM 并且遇到问题,请查看下面的可能原因和解决方法。
- 您已成功设置 DKIM,但是您的邮件未经过 DKIM 签名
-
如果您使用了 Easy DKIM 或 BYODKIM 为域配置 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 DKIM 或 BYODKIM - 自带 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 自动添加的。您可以忽略它。