邮件送达率与 DNS

DKIM 记录生成器:密钥与 DNS 配置检查

作者:Alexey Bulygin
DKIM 密钥与 DNS 中的 TXT 或 CNAME 记录

如果 Gmail 或 Google Postmaster Tools 报告认证失败,让你开始寻找DKIM 记录生成器,请先核对基础配置。我们的自有域名邮箱创建指南介绍 MX、SPF、DKIM、DMARC,以及可能影响投递的 DNS 错误。

许多网页工具没有充分解释:DKIM 配置需要两个密钥。公钥发布到 DNS,私钥保存在签名系统中。如果网站在服务器端生成密钥,就能接触私钥。经过核查、仅在本地浏览器中运行的实现有所不同,但未经核查不能轻信。私钥用于生成域名签名,并不证明可见 From 发件人的个人身份。

本指南介绍 2025-2026 年使用DKIM 记录生成器的两种实用方式:自建邮件服务器在本地使用 OpenSSL 生成密钥;通过 TrekMail、Amazon SES、SendGrid、Mailgun 或 Google Workspace 发送时,则按实际外发服务商的要求配置。

什么是 DKIM 记录生成器?

DKIM 记录生成器准备 DomainKeys Identified Mail 所需的 DNS 数据。它可以生成 RSA 密钥对,把公钥用于 TXT 记录;如果服务商支持委派,也可能提供指向服务商所发布公钥的 CNAME 记录。

DKIM 使用私钥签署外发邮件。接收服务器从 DNS 获取对应公钥,按照规范化规则验证已签名数据的签名。验证的是域名签名,而不是可见发件人的个人身份。

根据 RFC 8301,RSA 签名应使用 rsa-sha256,RSA 密钥至少为 1024 位,建议至少为 2048 位。因此,合适的DKIM 记录生成器应以 RSA 2048 为基础,而不是 1024。针对 RSA 的要求并不排除其他受支持的 DKIM 算法。

为什么未经核查的网页生成器有风险

使用公开网站之前,要明确私钥是在本地生成,还是会交给网站。未经核查的实现可能把眼前的便利变成长期的域名签名风险。

DKIM 不只是 DNS 格式整理。私钥应像生产环境凭据一样保护,并保存在签名系统中。如果第三方网站生成、记录或保存它,理论上就可能在以后用你的域名签署邮件。

公钥放在 DNS,私钥留在签名系统。网页表单同时提供两者时,要核查生成位置,以及私钥是否会传给服务。

评估任何DKIM 记录生成器,都要问:私钥在哪里生成,谁能够访问?如果无法验证网站的实现,就不要把生成的私钥用于生产环境。

在本地使用 OpenSSL

在自己的计算机或签名服务器上运行 OpenSSL,是网页DKIM 记录生成器之外的可控选择。这样可以避免把私钥交给第三方网站,但仍要保护设备和密钥文件。

这种方式适用于自行管理的 Postfix、Exim、Exchange、OpenDKIM 等邮件系统。在本地生成密钥,把私钥安装到签名主机,只把公钥发布到 DNS。

生成 2048 位 RSA 密钥对:

openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key

public.key 文件的结构如下,缩短的密钥仅用于展示格式:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr...
-----END PUBLIC KEY-----

然后整理内容:

  1. 删除 BEGIN PUBLIC KEYEND PUBLIC KEY 两行。
  2. 删除所有换行。
  3. 添加 DKIM 标签。

手动 TXT 记录通常具有以下格式,实际使用时必须替换成完整的自有公钥:

default._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr..."

只有裸公钥还不够。合适的DKIM 记录生成器应输出有效记录:v=DKIM1 可省略,但出现时必须放在首位;p= 则是必需的。s=emailt=s 等可选标签存在,但基础部署通常不需要。

DNS 的 255 字节限制

DNS 面板的长度限制可能破坏DKIM 记录生成器的输出。2048 位 RSA 公钥较长,某些面板需要把 TXT 值分成多段带引号的字符串,并放在同一条记录中。

旧面板可能拒绝长值,或只保存部分密钥。这可能导致 permerror、密钥格式错误,或选择器虽然存在,控制面板仍显示 DKIM 有问题。

如果服务商无法直接处理完整 TXT 值,可以把它拆成同一条 TXT 资源记录内的多段字符串。下面仅展示语法,并非可直接使用的密钥:

default._domainkey.example.com. IN TXT (
  "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArFirstPart"
  "SecondPartOfTheSamePublicKey"
)

验证应用会把这些字符串拼接成一个逻辑值,解析器可能仍分段显示。这是正常的 TXT 格式。实用的DKIM 记录生成器应考虑 DNS 面板的输入规则,并说明何时需要拆分。

按服务商配置,减少自行管理密钥

许多企业不必直接管理DKIM 记录生成器,因为私钥由发送服务商维护。有些服务提供 CNAME 和自动轮换,另一些使用 TXT 或要求额外操作。是否无需每六个月修改 DNS,要以具体轮换流程为准。

使用 TrekMail、Amazon SES、Google Workspace、SendGrid 或 Mailgun 时,应遵循实际外发服务商的要求。如果采用 CNAME 委派,你发布选择器 CNAME,服务商在目标主机名发布 DKIM TXT。若提供的是 TXT 值,就应使用 TXT。

项目自行管理服务商管理
密钥生成自己创建并保存 RSA 密钥服务商管理密钥
DNS 记录较长的 TXT 值服务商要求时使用选择器 CNAME
轮换手动规划和执行按服务商的流程处理
故障来源语法错误、截断、旧密钥DNS 错误、缺少记录或发送配置问题
适用环境自建 MTA托管邮箱和 SMTP 平台

TrekMail 提供带 DNS 检查的配置流程,但应根据实际发送路径确定 TXT 或 CNAME,不能一概而论。添加域名时,请先阅读添加域名中的当前 DNS 要求。

TrekMail 的设置取决于发送方式。Nano 使用自备 SMTP,适用的付费套餐可能包含托管 SMTP。价格参考为 Starter 每月 $3.50 起,付费套餐可能提供 14 天试用并要求信用卡。Nano 则提供不使用该试用且无需信用卡的方案。请核实当前套餐条件。

对于 TrekMail 用户,合适的DKIM 记录生成器取决于实际发送路径:

  1. 如果邮件由 TrekMail 托管 SMTP 签名,使用控制面板显示的 DNS 记录。
  2. 使用自备 SMTP 时,中继服务商只有配置好签名后才会签署邮件;应发布该服务商实际要求的 DKIM 记录。
  3. 服务商提供 CNAME 选择器时,使用这些记录,不要因为一般教程说 DKIM 使用 TXT 就擅自转换。

如果还在选择转发、别名或真实邮箱,可以阅读域名邮箱别名与邮箱的区别邮件别名转发。这些选择影响实际发送系统,因此也影响 DKIM 配置。

选择器应该发布在哪里

DKIM 记录生成器并不是为域名根节点准备记录。DKIM 公钥通过选择器主机名查询,例如 default._domainkeygoogle._domainkeytm1._domainkey

不同 DNS 界面的输入方式不同,有的只接受相对主机名,有的需要完整主机名。如果面板自动追加域名,再输入完整名称,可能得到 default._domainkey.example.com.example.com。接收方无法在这个错误名称下找到所需公钥。

常见相对名称:

default._domainkey
selector1._domainkey
tm1._domainkey

管理大量客户域名时,这类错误会不断累积。因此,代理机构需要可重复的 DNS 流程,而不只是临时修补。我们的多域名邮件托管指南进一步介绍大规模域名的邮件管理。

如何验证 DKIM 记录生成器的结果

控制面板显示正常后,还应进行直接 DNS 查询。检查DKIM 记录生成器结果时,可使用 dig 查询选择器并自行阅读响应。

先进行直接查询:

dig txt default._domainkey.example.com +short

记录可查询时,会显示 DKIM 值或带引号的 TXT 字符串。刚修改 DNS 后,也可查询公共解析器作为补充:

dig txt default._domainkey.example.com @8.8.8.8 +short

需要注意:

  1. 没有响应:检查选择器、主机名、DNS 缓存和查询错误。空响应本身不能确定原因。
  2. 响应看起来不完整:先对照所有 TXT 字符串及保存值,再判断是否被面板截断。
  3. 同一选择器有多条冲突的 DKIM TXT:先解决冲突,再重新测试。
  4. DNS 正确但签名失败:检查邮件头,确认发送系统使用对应的选择器和私钥。

如果 Gmail 仍有问题,应查看 Google 当前针对批量发件人的 SPF、DKIM 和 DMARC 要求。DKIM 问题可能导致限制,但如果 SPF 成功且对齐,并不一定造成 DMARC 失败。具体执行要求见 Google 的电子邮件发件人指南常见问题

TrekMail 用户也应检查实际发送路径。IMAP 和 SMTP 设置参考介绍 Nano 的自备 SMTP,以及适用付费套餐中的 TrekMail SMTP。如果 DNS 正确后仍进垃圾邮件,可按邮件进入垃圾邮件进行排查。

总结:按邮件架构选择 DKIM 配置

合适的DKIM 记录生成器应匹配邮件架构。自建服务器可以本地生成密钥;托管平台则应使用服务商指定的 TXT 或委派记录,并明确其轮换方式。

自行运行 MTA 时,可本地使用 OpenSSL,并像保护生产凭据一样保护私钥。使用 TrekMail、SES 或其他服务时,采用实际提供的记录,不要仅为消除警告就粘贴未经核查的网页密钥。

统一的认证配置与清晰的验证流程可能减少人工错误,尤其适合多个品牌、客户域名或迁移中的环境。如果仍在搭建系统,先阅读把域名邮件转发到 Gmail,再比较TrekMail 套餐价格

DKIM 记录生成器应该是可理解、可控制的设置步骤,而不是生产密钥的黑箱来源。

分享这篇文章

我们使用运行和保护 TrekMail 所必需的技术。确认后还会允许《Cookie 政策》中所述的有限分析和广告衡量。

登录 TrekMail

访问您的控制面板、邮箱和 DNS。

12 个字符 两次密码一致

重置邮件已发送

如果该邮箱对应已有账户,我们已发送密码重置说明。

继续即表示您同意 TrekMail 的 服务条款隐私政策.