![如何让 DKIM 进行身份验证?](https://linux22.com/image/521663/%E5%A6%82%E4%BD%95%E8%AE%A9%20DKIM%20%E8%BF%9B%E8%A1%8C%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%EF%BC%9F.png)
我在 RHEL4 上安装了 sednamil 和 dkim-milter。
DNS 和配置文件如下所示:
TXT 记录:mail._domainkey.MYDOMAIN.com IN TXT “v=DKIM1; g=*; k=rsa; t=y; p=....snip...TRM3w7CuYnQIDAQAB”
TXT记录:
_adsp._domainkey.MYDOMAIN.com. IN TXT "dkim=unknown"
/etc/dkim.conf
Canonicalization simple
Domain MYDOMAIN.com,MY2ndDOMAIN.com
KeyFile /var/db/dkim/mail.key.pem
MTA MSA
Selector mail
Socket inet:8891@localhost
SignatureAlgorithm rsa-sha256
Syslog Yes
Userid dkim
X-Header Yes
Mode sv
InternalHosts /etc/dkim-internal-hosts
/etc/dkim-内部主机
MYDOMAIN.com
MY2ndDOMAIN.com
127.0.0.1
现在,当我发送一封电子邮件进行测试时,虽然出现了密钥,但我在标题中看不到有关 DKIM 经过身份验证的任何内容:
X-DKIM: Sendmail DKIM Filter v2.8.3 MYDOMAIN.com o7FLH1Wa032083
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=MYDOMAIN.com; s=mail;
t=/XKdLCPjaYaY=;
h=Message-ID:Date:Subject:From:To:MIME-Version:Content-Type:
Content-Transfer-Encoding;
b=qetPkilXBdjnuqiKIyvAwsvTvJfAnq5urdgp/i7p/uLJ8DB+svy9A8C6CPmcfELsJ
hDid5k2AN5JD+wM2INmUIgjeAa/IwpGTbuMloj0Wioh4njqIfbATJqOhuqxTjic
如果我输入:
# host -t txt mail._domainkey.MYDOMAIN.com
我得到:
Host mail._domainkey.MYDOMAIN.com not found: 3(NXDOMAIN)
我可能错过了什么?
答案1
您的 DNS 设置似乎不正确。您需要输入最初设置 DKIM 时生成的公钥。示例 DKIM 记录如下:
$ dig +short TXT dkim._domainkey.twitter.com
"v=DKIM1\;" "g=*\;" "k=rsa\;" "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrZ6zwKHLkoNpHNyPGwGd8wZoNZOk5buOf8wJwfkSZsNllZs4jTNFQLy" "6v4Ok9qd46NdeRZWnTAY+lmAAV1nfH6ulBjiRHsdymijqKy/VMZ9Njjdy/+FPnJSm3+tG9Id7zgLxacA1Yis/18V3TCfvJrHAR/a77Dxd65c96UvqP3QIDAQAB"
p= 后面的所有内容都是公钥。只需将其全部粘贴在一行上即可。_domainkey 之前的值称为您的选择器。在上面的 Twitter 示例中,它们的选择器是德金。从您的/etc/dkim.conf
文件中可以看出,您的选择器被简单地称为mail
。因此您的 DNS 记录应该是:
mail._domainkey.MYDOMAIN.com. IN TXT "v=DKIM1; k=rsa; t=s; p=<yourpublickey>"
一旦设置完成并且记录传播后,您应该在运行以下命令时获得完整的记录:
$ dig +short TXT mail._domainkey.MYDOMAIN.com
希望这可以帮助。