DKIM验证对象疑问:是SMTP/envelope-from还是mail/header from?
DKIM验证的到底是哪个?一次性给你说清楚
嘿,这个疑问太正常了——毕竟SPF、DKIM、DMARC三个放一起确实容易绕晕,尤其是不同资料说法不一的时候。我直接给你划重点:
DKIM完全不关注SMTP层面的envelope-from(也就是你说的「mail from」),它的验证对象是邮件本身的内容,包括:
- 邮件头部里的各种字段(比如你提到的Header-From,就是用户在邮件客户端里看到的那个发件人地址)
- 邮件正文内容
具体来说,DKIM的逻辑是这样的:
- 发送方服务器会对邮件里指定的头部字段和正文生成哈希值,然后用自己域名的私钥对这个哈希值签名
- 把生成的DKIM签名作为一个新的头部字段插入到邮件里
- 接收方服务器收到邮件后,从DKIM签名里提取对应的域名,去DNS查询该域名公开的DKIM公钥
- 用公钥验证签名是否有效,同时对比哈希值确认邮件从发送到接收的过程中内容没被篡改
至于为什么你会看到矛盾信息?大概率是把DKIM和DMARC搞混了:DMARC会要求SPF验证通过的envelope-from,或者DKIM签名对应的域名,和Header-From的域名保持「对齐」——但这是DMARC的规则,和DKIM本身的验证逻辑无关。
再补个对比帮你区分:
- SPF:管的是「这个发送IP是不是被envelope-from的域名授权了」,只看SMTP连接层面的信息
- DKIM:管的是「这个邮件内容是不是被某个域名授权签发的」,只看邮件本身的内容和签名
- DMARC:相当于一个统一的校验规则,把SPF和DKIM的结果结合起来,确保发件人身份的一致性
内容的提问来源于stack exchange,提问作者Tobi
相关产品推荐
相关产品推荐

