DKIM公钥是设置在一个随机的域名上的啊, 比如: 5682123._dkim.abc.com
收件方他怎么知道我的邮件公钥放在 "5682123._dkim.abc.com" 的TXT记录里面的呢 |
邮件接收方验证 DKIM(DomainKeys Identified Mail)时,会进行以下几个步骤: 1. **检查 DKIM 签名头部**:接收方的邮件服务器首先会检查邮件中是否包含 `DKIM-Signature` 头部。该头部包含了发件方域名、用于签名的密钥选择器、签名算法、签名的哈希值等信息。 2. **提取 DKIM 签名信息**:邮件服务器从 `DKIM-Signature` 头部中提取相关信息,包括发件方域名和密钥选择器(`s` 标签)。 3. **DNS 查询公钥**:接收方邮件服务器通过 DNS 查询发件方域名的 DKIM 公钥。具体做法是结合 `s` 标签(密钥选择器)和 `d` 标签(域名)生成一个 DNS 查询,查询的格式一般是 `selector._domainkey.domain.com`。 4. **验证签名**:接收方邮件服务器使用从 DNS 中获取的公钥,结合邮件内容和头部信息,对比 DKIM 签名的哈希值。如果公钥解密后的哈希值与邮件内容生成的哈希值匹配,签名验证通过,邮件被认为是经过认证的,且未被篡改。 5. **处理验证结果**:如果验证通过,邮件将被标记为可信,进入正常的处理流程。如果验证失败,邮件可能被标记为垃圾邮件或拒绝接收,具体处理方式取决于收件方的安全策略。 通过上述过程,DKIM 帮助邮件接收方判断邮件是否确实来自标识的发件方,并且邮件内容是否在传输过程中未被篡改。 |
也就是说我发邮件的时候还要手动给邮件头加一个域名地址, 告诉收件方我的DKIM公钥放在哪里域名里的?
但是我SMTP发邮件的什么都没有加啊 |
有个东西叫发送域,是在你发信主机上配置的,比如发送域是 aaa.bbb.com 那么dkim就是 dkim._domainkey.aaa.bbb.com mail._domainkey.aaa.bbb.com 而不是你说的随机 |
收件服务器检查邮件头部的DKIM签名。 |
最前面那串就是随机的, 是不是SMTP发邮件时DKIM签名不需要自己添加, SMTP服务商会帮你添加? |
Smtp服务器会自己添加,比如smtp.qq.com。如果是自建的,要自己配置! |