邮件送达率与 DNS

DKIM 设置指南:分步配置 DNS

作者:Alexey Bulygin
DKIM 公钥与 DNS 记录配置示意图

如果在 2026 年发信却没有 DKIM,邮件更容易被拒收或进入垃圾箱。Google 和 Yahoo 等平台要求发件人使用加密身份验证。学习如何配置 DKIM,可以避免因验证不完整而遇到 550 5.7.26 等错误,但是否投递仍取决于收件平台政策和信誉。

DKIM,即 DomainKeys Identified Mail,会为每封出站邮件添加数字签名。收件服务器使用你在 DNS 发布的公钥验证签名。匹配时可证明邮件由相应私钥签署且内容未被篡改;不匹配时,邮件可能被标记或丢弃。

本文介绍从生成密钥、发布 DNS 到验证的完整流程,适用于不同服务商。若尚未配置 SPF,请先阅读邮件 SPF 记录指南。

DKIM 的作用(30 秒说明)

DKIM 使用 RFC 6376 规定的非对称加密。邮件服务器保存私钥并为出站邮件签名,匹配的公钥则发布为 DNS TXT。收件服务器取得公钥后验证签名。

它能证明两件事:

  • 身份:邮件由持有该域名相应私钥的系统签署。
  • 完整性:签名覆盖的内容在传输中未被更改。

没有 DKIM 会削弱域名信誉。邮箱服务商通常会更谨慎地处理未签名邮件,长期发送可能累积负面信号。

如何配置 DKIM:完整流程

DKIM 配置分四步:生成密钥、发布 DNS、验证传播,并确认与 DMARC 对齐。 每步只需几分钟,但缺少任何一步都可能使验证失效。

步骤 1:生成 DKIM 密钥对

第一步由邮箱服务商生成密钥对。不要使用随机的第三方 DKIM 生成网站,因为掌握私钥的一方可能伪造来自你域名的邮件。

服务商会给出两项内容:selector,例如 s1googletm1,以及公钥值。selector 让同一域名可使用多把 DKIM 密钥,使营销平台和事务邮件服务各自独立。

TrekMail 用户

  • Starter、Pro、Agency($3.50-$23.25/mo): 按当前功能,DKIM 自动管理,向导生成并轮换密钥,用户只需添加指向平台的 CNAME。
  • Nano($0,无需银行卡): 使用自带 SMTP,如 Amazon SES、SendGrid、Mailgun 时,应在对应平台生成密钥。

其他服务商

  • Google Workspace: Admin Console → Apps → Gmail → Authenticate Email → Generate New Record。边缘情况请查阅 Google 的官方 DKIM 文档
  • Microsoft 365: Defender → Policies & rules → Threat policies → Email authentication settings → DKIM。
  • Amazon SES: Verified Identities → Click Domain → DKIM → Generate。
  • SendGrid: Settings → Sender Authentication → Authenticate Your Domain。

输出类似如下:

Selector: tm1
Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...

复制两项,下一步会用到。

步骤 2:发布 DKIM DNS 记录

登录 DNS 服务商,如 Cloudflare、Namecheap、GoDaddy、Route 53,也就是域名服务器实际指向的平台,然后创建记录。

配置如下:

Type:  TXT  (or CNAME if your provider gave you a CNAME target)
Host:  selector._domainkey
Value: v=DKIM1; k=rsa; p=YOUR_PUBLIC_KEY_HERE
TTL:   3600

关键细节: 若 selector 是 tm1,Host 应为 tm1._domainkey,而不是 tm1._domainkey.example.com。多数 DNS 控制台会自动追加域名;若你的平台不会,则填写完整主机名。

2048 位密钥长度问题

应优先使用 2048 位密钥,它是当前常见标准,部分服务商已不接受 1024 位。不过 2048 位公钥可能超过 DNS TXT 单个片段的 255 字符限制。

如果 DNS 平台提示“Invalid Length”,可将值拆成两个带引号的字符串:

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg
KCAQEAx7...first-half-of-key..."
"second-half-of-key...QAB"

DNS 会自动拼接。Cloudflare 和多数现代平台会代为拆分,旧版 cPanel 可能需要手动处理。

步骤 3:验证 DKIM 记录

DNS 修改不会立即生效。等待 5-15 分钟,再确认记录可从公网查询。

Mac 或 Linux:

dig txt tm1._domainkey.yourdomain.com +short

Windows:

nslookup -q=txt tm1._domainkey.yourdomain.com

期望结果:

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQE..."

常见失败:

  • NXDOMAIN: 记录不存在,可能尚未传播,或出现“重复域名”,例如 tm1._domainkey.example.com.example.com。检查 DNS 的 Host。
  • 空响应: 记录存在但格式错误。确认完整复制了密钥,没有尾部空格或额外换行。

步骤 4:检查 DKIM 与 DMARC 对齐

正确配置还需要检查对齐,这是许多系统隐蔽失败的地方。DKIM 签名可以在数学上有效,DMARC 却仍可能拒绝邮件。

DMARC 要求对齐:DKIM 签名 d= 中的域名必须与 From: 标头域名匹配。错误示例如下:

From: you@yourcompany.com
DKIM signature: d=sendgrid.net

Result: DKIM passes, DMARC fails (domains don't match)

使用第三方 ESP 却未配置自定义 DKIM 时会发生这种情况,该功能也可能称为“domain authentication”或“whitelabeling”。ESP 使用其自身的域名签名,而不是你的域名。

解决方法是在每个代你发信的服务中启用自定义 DKIM。按当前架构,TrekMail 托管 SMTP 会使用客户域名签名,但上线后仍应通过标头验证。

更多身份验证协议关系,请阅读邮件发送者信誉指南。

常见 DKIM 配置错误

了解完整流程后,还要避开以下问题:

  1. 遗漏发送服务。 Google Workspace、CRM、营销平台都需要自己的 selector 和 DKIM 记录。缺少任何服务的签名都会降低 DMARC 通过率。
  2. 使用 1024 位密钥。 一些旧教程仍默认 1024 位,应改用 2048 位以提高安全性并满足更多平台要求。
  3. 不轮换密钥。 DKIM 密钥至少应每年轮换;私钥泄露后可能被用于伪造邮件。TrekMail 托管套餐按当前功能自动轮换。
  4. 忽略 selector._domainkey 格式。 下划线和 _domainkey 后缀不可省略,主机名错误会使记录无法查询。

TrekMail 如何自动处理 DKIM

一个域名手动配置约需 20 分钟;管理 10 或 50 个域名时会成为明显负担。一个过期密钥或错误 selector 可能让投递问题持续数天。

TrekMail 当前方案:

  • Nano($0): SPF、DKIM、DMARC 向导引导配置,无需银行卡。
  • Starter($3.50/mo)和 Pro($10/mo): 托管 DKIM,自动生成、轮换并签名,只需添加一条 CNAME。所有方案包含 14 天试用,需银行卡。
  • Agency($23.25/mo): 在客户域名应用相同托管验证,并在网关层执行 TLS 和 DKIM 签名。

减少手动 DNS 和凌晨 2 点排查 selector 的工作。免费试用 TrekMail,通常可在五分钟内完成基础 DKIM,但 DNS 传播时间可能不同。

总结

2026 年,了解 DKIM 配置是提升邮件投递能力的基础。缺少 DKIM 会增加退信和垃圾箱风险;正确使用则能证明签名身份并检测内容篡改。

步骤很清晰:在服务商生成密钥,在 DNS 发布 TXT,验证传播,再确认 DMARC 对齐。为每个发信服务分别配置,至少每年轮换密钥,并通过 DMARC 报告监控通过率。

若希望由平台处理认证,TrekMail 托管套餐可按当前功能完成 DKIM 密钥生成与轮换。其余安全配置请参阅 SPF 记录配置企业安全邮箱指南。

分享这篇文章

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

登录 TrekMail

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

12 个字符 两次密码一致

重置邮件已发送

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

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