如果 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.keypublic.key 文件的结构如下,缩短的密钥仅用于展示格式:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr...
-----END PUBLIC KEY-----然后整理内容:
- 删除
BEGIN PUBLIC KEY和END PUBLIC KEY两行。 - 删除所有换行。
- 添加 DKIM 标签。
手动 TXT 记录通常具有以下格式,实际使用时必须替换成完整的自有公钥:
default._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr..."只有裸公钥还不够。合适的DKIM 记录生成器应输出有效记录:v=DKIM1 可省略,但出现时必须放在首位;p= 则是必需的。s=email 和 t=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 记录生成器取决于实际发送路径:
- 如果邮件由 TrekMail 托管 SMTP 签名,使用控制面板显示的 DNS 记录。
- 使用自备 SMTP 时,中继服务商只有配置好签名后才会签署邮件;应发布该服务商实际要求的 DKIM 记录。
- 服务商提供 CNAME 选择器时,使用这些记录,不要因为一般教程说 DKIM 使用 TXT 就擅自转换。
如果还在选择转发、别名或真实邮箱,可以阅读域名邮箱别名与邮箱的区别及邮件别名转发。这些选择影响实际发送系统,因此也影响 DKIM 配置。
选择器应该发布在哪里
DKIM 记录生成器并不是为域名根节点准备记录。DKIM 公钥通过选择器主机名查询,例如 default._domainkey、google._domainkey 或 tm1._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需要注意:
- 没有响应:检查选择器、主机名、DNS 缓存和查询错误。空响应本身不能确定原因。
- 响应看起来不完整:先对照所有 TXT 字符串及保存值,再判断是否被面板截断。
- 同一选择器有多条冲突的 DKIM TXT:先解决冲突,再重新测试。
- 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 记录生成器应该是可理解、可控制的设置步骤,而不是生产密钥的黑箱来源。