排查 DKIM 问题

如果您已设置域名密钥识别邮件 (DKIM),但从您网域发出的邮件仍然出现以下情况,请按照本文中的步骤操作:

  • 未通过 DKIM 身份验证
  • 遭到了邮件接收服务器的拒绝
  • 发送到了收件人的“垃圾邮件”文件夹

本页内容

最常见的解决方案

确保您拥有 DKIM 记录

查看您是否拥有 DKIM 记录:

  • 如果您未使用 Google Workspace,请使用互联网上提供的工具。
  • 如果您正在使用 Google Workspace,请按照本部分中的步骤操作。
  1. 在 Google 管理控制台中,依次点击“菜单”图标 然后 应用 然后 Google Workspace 然后 Gmail

    需要拥有“Gmail 设置”管理员权限。

  2. 点击对电子邮件进行身份验证
  3. 所选网域 菜单中,选择您要设置 DKIM 的网域。
  4. 如果 DNS 主机名和 TXT 记录值为空,则表示您没有 DKIM 记录。

如需创建新的 DKIM 记录,请参阅生成 DKIM 密钥 对。然后,请参阅 将 DKIM 记录添加到您的网域(本页)。

将 DKIM 记录添加到您的网域

创建 DKIM 记录后,您必须将该记录(其中包含 DKIM 密钥)添加到您的网域。

  1. 登录域名托管服务商网站。
  2. 前往用于更新域名 DNS TXT 记录的页面。
  3. 使用 DKIM 主机名和推荐值添加或更新 TXT 记录。

请参阅将 DKIM 密钥添加到您的 网域

修正身份验证错误

如果您在创建 DKIM 记录并将其添加到您的网域后收到“未进行身份验证”错误,则需要完成设置。

推荐步骤: 前往“对电子邮件 进行身份验证”页面,然后点击“启动身份验证”。请参阅启用并验证 DKIM

验证 DKIM 记录值

确保 DKIM 记录包含正确的主机名/TXT 记录名称和 TXT 记录值/DKIM 密钥。请参阅将 DKIM 密钥添加到您的 网域

成功设置后会是什么样?

创建 DKIM 记录、将 DKIM 记录添加到您的网域、修正所有身份验证错误并验证 DKIM 记录的值正确无误后,DKIM 状态应显示为“正在使用 DKIM 对电子邮件进行身份验证”。 您的设置已完成。

高级问题排查

检查邮件是否通过 DKIM 身份验证

您可以在 Gmail 中查看电子邮件是否通过了 DKIM 身份验证。

推荐步骤

  1. 在浏览器中打开 Gmail
  2. 打开您要检查标头的电子邮件。
  3. 点击“回复”图标 旁边的“更多”图标 然后 显示原始邮件
    • 系统会在新窗口中显示完整标头。
  4. 点击复制到剪贴板

其他步骤

在域名提供商处验证 DKIM 密钥

大多数 DKIM TXT 记录最多可包含 255 个字符。由于 TXT 记录存在 255 个字符的限制,您无法 以单个文本字符串的形式输入 2048 位密钥。您的 DKIM 密钥可能会被截断,或者 DKIM 记录可能会乱序发送。

推荐步骤

  • 如果您无法以单个 文本字符串的形式输入整个 DKIM TXT 记录值,请按照验证 TXT 记录字符 数限制中的步骤操作。
  • 将域名提供商处的 DKIM TXT 记录值与管理控制台中的值进行比较,并验证 DKIM 密钥是否正确:
    1. 从管理控制台中获取 DKIM TXT 记录值,例如 google._domainkey
    2. 前往 Google 管理员工具箱的 Dig 工具。
    3. 点击 TXT
    4. 输入第 1 步中的 DKIM TXT 记录值,然后在此值后添加句点 (.) 和您的域名。
    5. 将结果与管理控制台中的值作比较。如果所有密钥字符都包含在内且顺序正确,则 DKIM 密钥可以分为 2 部分。

检查邮件转发

即使您网域的 DKIM 设置正确,转发的邮件也可能无法通过 DKIM 检查。这可能是邮件服务器转发邮件的方式所致。

针对电子邮件发送者的推荐步骤

  • 确保邮件在传输过程中未遭更改。找到 Authentication-results: 标头。如果 dkim 条目旁边的文本是 body hash did not verify ,则表示邮件已在传输过程中被修改。
  • 如果您使用出站网关,请确保它在发送外发邮件之前不会对其进行修改。例如,部分出站网关会在每封外发邮件底部添加页脚。这可能会导致 DKIM 检查失败,因为邮件内容在发送后发生了更改。

针对电子邮件收件人的推荐步骤

  • 使用电子邮件日志搜索 来验证邮件是否曾经过转发。如果将邮件报告为垃圾邮件的人不是原始收件人,则邮件很可能已被转发。
  • 与转发邮件的服务联系,了解他们是否可以更改邮件转发方式。

另请参阅 向 Gmail 转发电子邮件的最佳做法

验证 TXT 记录字符数限制

如果您在输入 DKIM 值时出错,可能是因为您的域名提供商限制了 DNS TXT 记录中允许的字符数。

推荐步骤

如果您使用的是 2048 位 DKIM 密钥,则无法在 DNS 记录(255 个字符上限)中以单个文本字符串的形式输入该密钥。而应按以下步骤操作:

  1. 将密钥字符拆分成多个文本字符串。
  2. 将每个字符串放在英文引号中。
  3. 在域名提供商的“TXT record Value”(TXT 记录值)字段中逐一输入字符串。

在此示例中,一个较长的 DKIM 密钥被拆分为两个文本字符串,并且每个字符串都放在英文引号中:

"k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAraC3pqvqTkAfXhUn7Kn3JUNMwDkZ65ftwXH58anno/bElnTDAd/idk8kWpslrQIMsvVKAe+mvmBEnpXzJL+0LgTNVTQctUujyilWvcONRd/z37I34y6WUIbFn4ytkzkdoVmeTt32f5LxegfYP4P/"

"w7QGN1mOcnE2Qd5SKIZv3Ia1p9d6uCaVGI8brE/7zM5c/zMthVPE2WZKA28+QomQDH7ludLGhXGxpc7kZZCoB5lQiP0o07Ful33fcED73BS9Bt1SNhnrs5v7oq1pIab0LEtHsFHAZmGJDjybPA7OWWaV3L814r/JfU2NK1eNu9xYJwA8YW7WosL45CSkyp4QeQIDAQAB"

您也可以尝试:

我们建议您在域名提供商处添加的 TXT 记录不要超过 49 条,因为这是大多数域名提供商支持的数量上限。

检查 DKIM 签名的数量

邮件可以使用多个 DKIM 签名进行签名。不过,Gmail 只会检查 Authentication-Results: 邮件标头中列出的前 5 个签名。Gmail 会按照签名在标头中的显示顺序进行检查。如果身份验证签名不是标头中列出的前 5 个签名之一,则邮件将无法通过 DKIM 身份验证。这也可能会导致邮件无法通过 DMARC 检查。

如需验证 Gmail 针对任何邮件检查的签名,请查看邮件中的 Authentication-Results: 标头。如需了解检查 Gmail 邮件标头的详细步骤,请参阅使用完整标头跟踪电子邮件

检查您的电子邮件发送做法

如果 DKIM 设置正确,但邮件被发送到垃圾邮件文件夹,则原因可能不是 DKIM。

推荐步骤

如果有服务器拒绝带有 DKIM 签名的邮件,请与相应服务器的管理员联系

即使 DKIM 设置正确,邮件接收服务器仍可能会拒绝来自您网域的邮件,或将邮件发送至收件人的垃圾邮件文件夹。

推荐步骤

  • 请与拒绝邮件的服务器的管理员联系。
  • 设置 DMARC,以便接收关于 DKIM 身份验证结果的报告。请参阅 设置 DMARC
  • 如果您使用 Google Workspace 以外的电子邮件系统设置 DKIM,请勿在外发邮件中使用 DKIM 长度标记 (l= )。使用此标记的邮件容易遭到滥用。如需了解详情,请参阅 RFC 6376 的第 8.2 节


Google、Google Workspace 以及相关标志和徽标是 Google LLC 的商标。其他所有公司名和产品名是其各自相关公司的商标。