要点速览
- DKIM 使用私钥为外发邮件签名,并把公钥发布在 DNS 中,供收件方验证签名。
- 这个生成器会根据邮件服务商提供的选择器,格式化 DNS 主机名和 TXT 值。
- 发布后,使用 DKIM 检查工具进行检查,然后在发送活动前确认 SPF 和 DMARC 对齐。
生成 DKIM DNS 记录
常见选择器:google, s1, s2, mail, selector1, selector2
从邮件发送服务获取(Google Workspace、SendGrid、Postfix 等)
DKIM 的工作原理
邮件服务器用私钥为外发邮件签名。收件方服务器从 DNS 获取您的公钥并验证签名,以此证明邮件在传输过程中未被篡改。
查找公钥
ESP(Google Workspace、Microsoft 365、SendGrid、Mailgun)会生成密钥对,并提供需要发布到 DNS 的公钥。格式为: v=DKIM1; k=rsa; p=YOUR_PUBLIC_KEY
如何正确准备 DKIM 记录
DKIM 记录发布在选择器下,而不是直接发布在域名根部。选择器是邮件服务选定的简短标签,例如 google, selector1, s1或mail。完整的 DNS 主机名通常形如selector._domainkey.example.com。TXT 值包含与邮件服务签名私钥相匹配的公钥。
当发件方提供了选择器和公钥,而 DNS 服务商需要干净的可复制粘贴格式时,就可以使用这个生成器。粘贴 base64 公钥时,不要包含证书的开始和结束行。生成的值采用标准的 DKIM TXT 格式,包括v=DKIM1、密钥类型和公钥。
不要自行编造公钥。用于签名邮件的私钥由发件平台掌握,因此公钥必须来自该平台。如果自行管理邮件服务器,请在服务器上生成密钥对,只把公钥发布到 DNS。妥善保管私钥,并在访问权限变更时轮换密钥。
从邮件平台或邮件服务器配置中复制选择器和公钥。
输入选择器、域名和公钥,然后复制生成的 TXT 记录值。
发布 TXT 记录,待 DNS 更新后用 DKIM 检查工具进行检查。
DKIM 与 SPF、DMARC 和干净的发送数据配合效果最佳
DKIM 证明已签名的邮件与发件域名的公钥相匹配,但送达率仍取决于整体配置。 SPF 用于识别获准的发件方。 DMARC 规定邮箱服务商应如何处理身份验证失败的邮件,以及 SPF 或 DKIM 是否与可见的发件人域名对齐。
身份验证到位后,还要保持收件人列表健康。即使邮件已签名,如果地址过时或无效,仍然会退信。在发送较大规模的活动之前,通过批量验证验证 CSV,并尽量把退信率控制在 3% 以下。如果退信率进入 3-5% 区间,下次发送前先清洗列表;高于 5% 则风险很高。
实用的 DKIM 配置清单
发布 DKIM 记录之前,确认该选择器属于实际为邮件签名的同一个发件方。许多团队为 Google Workspace 使用一个选择器,为 Microsoft 365 使用另一个,并为 SendGrid、Mailgun、Postmark 或 Amazon SES 等平台分别设置选择器。选择器分开管理,排查问题时更清晰,因为可以分辨每个密钥属于哪个服务。
发布后,等待 DNS 生效再检查选择器。如果记录已可见,但邮件仍未通过 DKIM,请发送一封测试邮件并检查身份验证邮件头。这样就能知道发件方是用预期的选择器签名,还是仍在使用旧密钥。
DKIM 生成器常见问题
什么是 DKIM 选择器?
选择器是用于在 DNS 中查找 DKIM 公钥的标签。它让一个域名可以发布多个 DKIM 密钥,适用于不同发件方或密钥轮换。
在哪里找到我的 DKIM 公钥?
由邮件发送平台或邮件服务器生成。请在该服务的域名身份验证、发件人身份验证或 DNS 设置区域查找。
应该把私钥发布到 DNS 吗?
不应该。DNS 中只放公钥。私钥保留在为外发邮件签名的发送系统内。
可以所有发件方共用一个 DKIM 密钥吗?
有时可以,但当多个平台以同一域名发信时,分开使用选择器更清晰,也让密钥轮换和问题排查更容易。