什么是 DKIM(域名密钥识别邮件)?

DKIM 是 DomainKeys Identified Mail 的缩写,是一种为每封外发邮件附加加密签名的邮件认证方法。收件服务器可以通过该签名确认邮件确实由发信域名授权,且内容在传输途中未被篡改。

定义

DomainKeys Identified Mail(DKIM)与 SPF、DMARC 并列为现代电子邮件认证的三大支柱。SPF 回答的是邮件是否来自授权服务器,而 DKIM 回答的是两个略有不同的问题:它确认邮件已获得发件域名控制者的批准,并确认邮件在发出后没有被任何人篡改。

DKIM 通过公钥加密实现这一点。发件域名持有一把私钥,安全保存在自己的邮件基础设施中,同时在域名系统(DNS)中发布一把对应的公钥,供任何人读取。域名发送邮件时,邮件服务器用私钥对邮件的选定部分生成数字签名,并将签名作为隐藏头部加入邮件。邮件到达后,接收服务器从 DNS 获取公钥并用它校验签名。由于只有私钥持有者才能生成可被公钥验证通过的签名,DKIM 校验通过就足以证明邮件真实且完整。

工作原理

DKIM 依赖一对加密密钥。系统为域名生成私钥并安全存放在发件邮件系统中,对应的公钥则以 DNS TXT 记录的形式发布。该记录位于一个由“选择器”(selector)标签构成的特殊位置,格式为 selector._domainkey.yourdomain.com。有了选择器,一个域名就能同时发布多把密钥,便于为每个发信服务分配独立密钥,也便于随时间安全地轮换密钥。

域名发送邮件时,邮件服务器会选择要保护的邮件部分,其中始终包括邮件正文和一组选定的头部字段,常见的有 From、To、Subject、Date 等。服务器分别计算正文哈希和所选头部的哈希,再用私钥对这些数据签名,生成签名。这些信息都记录在一个名为 DKIM-Signature 的新头部中并加入邮件。该头部用 d= 标签记录签名域名,用 s= 标签记录选择器,用 h= 标签列出已签名的头部,用 bh= 标签记录正文哈希,用 b= 标签记录签名本身。

在接收端,服务器读取 DKIM-Signature 头部,取出域名和选择器,到 DNS 中查找对应的公钥记录。随后,它按 h= 中列出的完全相同的头部重新计算正文哈希和头部哈希,并用公钥验证 b= 中的签名是否与重新计算的数据相符。如果使用的是正确的私钥,且已签名内容在传输中未被更改,签名即验证通过,DKIM 通过。只要任何已签名头部或正文被修改,哈希就不再匹配,校验失败。由此带来一个实际影响:签名只覆盖明确列出的头部,并且只有在中间邮件系统不改动邮件已签名部分时才保持有效。

为什么它对邮件送达率很重要

对邮箱服务商而言,DKIM 是强有力且持久的信任信号。持续有效的 DKIM 签名告诉服务商,邮件背后有一个真实的域名,并愿意为之负责,这有助于邮件进入收件箱。同样重要的是,DKIM 具备 SPF 所没有的特性:签名随邮件本身传递,而不依赖于连接服务器,因此 DKIM 通常能在邮件转发后保持有效,而 SPF 在转发时常常失效。这让 DKIM 在复杂的投递路径中成为两项校验里更可靠的一项。

DKIM 也是 DMARC 的基础。只要 SPF 或 DKIM 通过,且结果与可见的 From 域名对齐,DMARC 就会通过,因此正确签名的 DKIM 邮件为域名提供了一条可靠的 DMARC 对齐路径。自 Google 和 Yahoo 推出 2024 年发件人要求以来,批量发件人需要同时通过 SPF 和 DKIM 认证,没有有效 DKIM 签名的邮件被过滤或拒收的可能性要高得多。对于任何大规模发送电子邮件的人来说,正确配置 DKIM 已从最佳实践变成了基本要求。

VeriMails 如何应对

DKIM 和邮箱验证从两个不同方向保护送达率,健康的邮件计划两者缺一不可。DKIM 认证您发出的邮件,向接收服务器证明邮件真实且未被篡改。邮箱验证则清洗您的发送对象,确保列表上每个地址都真实且可达。只有认证而列表不干净,仍会产生退信;列表干净却没有认证,看起来仍不可信,所以两者需要配合使用。

VeriMails 专注于其中的收件人一侧。您提交的每个地址都会经过语法验证、MX 和 DNS 查询、实时 SMTP 握手、Catch-all(全收)检测、一次性邮箱检测和角色邮箱检测,剔除那些原本会退信、损害 DKIM、SPF 和 DMARC 记录所要保护的信誉的无效地址。为了兼顾认证一侧,VeriMails 还提供免费的 DKIM 生成器,帮您生成密钥对以及需要发布的 DNS 记录。您可以通过 REST API 或批量上传 CSV 来验证列表,并获得清晰的送达分类,便于做出营销活动决策。验证低至每封 $0.0019,$19 即可获得 10,000 积分,年付套餐低至 $12.50/月;每个账户都免费赠送 100 积分,无需信用卡,且永不过期。

常见问题

有效的 DKIM 签名证明两件事。第一,邮件由持有该域名私钥的服务器授权发出,因此发件人身份真实。第二,已签名的头部和正文在传输中未被更改,因为任何改动都会导致加密校验失败。
公钥以 DNS TXT 记录的形式发布在一个由选择器和域名构成的特殊位置,格式为 selector._domainkey.yourdomain.com。邮件中的 DKIM-Signature 头部会注明选择器,让接收服务器准确知道要查找哪条密钥记录。
选择器是一个简短标签,让域名可以同时发布多把 DKIM 密钥,例如每个发信服务一把,或用于密钥轮换。选择器包含在 DKIM-Signature 头部中,接收方据此在 DNS 中找到对应的公钥记录。
DKIM 认证您发出的邮件,让接收方相信邮件未被伪造或篡改;邮箱验证则清洗您的发送列表,确保只发给真实地址。要获得出色的送达率,两者都不可少。VeriMails 还提供免费的 DKIM 生成器,帮您生成密钥对。

免费试用 VeriMails

注册即送 100 免费积分,无需信用卡。今天就把邮箱验证付诸实践。

免费开始
无需信用卡。积分永不过期。