如果在 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,例如 s1、google 或 tm1,以及公钥值。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 配置错误
了解完整流程后,还要避开以下问题:
- 遗漏发送服务。 Google Workspace、CRM、营销平台都需要自己的 selector 和 DKIM 记录。缺少任何服务的签名都会降低 DMARC 通过率。
- 使用 1024 位密钥。 一些旧教程仍默认 1024 位,应改用 2048 位以提高安全性并满足更多平台要求。
- 不轮换密钥。 DKIM 密钥至少应每年轮换;私钥泄露后可能被用于伪造邮件。TrekMail 托管套餐按当前功能自动轮换。
- 忽略 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 记录配置和企业安全邮箱指南。