我用 DKIM 配置了我的服务器(Debian Jessie)和域。我在我的服务器上安装了 OpenDKIM,并按照本教程进行操作。我去了我的域提供商,并为以下内容设置了新的 DNS TXT 记录mail._domainkey.example.com
:
"v=DKIM1; k=rsa; p=ThePublicKey"`
我从哪里得到密钥mail.txt
,它是由命令生成的:
opendkim-genkey -s mail -d example.com
我确保 OpenDKIM 服务器正在工作,并且 Postfix 正在对消息进行签名。但是,我无法找到一种公正的方法来检查从我的服务器发送的电子邮件是否正确签名。
通过谷歌搜索,我找到了这个服务,它让我向它发送电子邮件,并给我一份关于签名是否正确的报告。但是,它一直说签名在最终报告中无效:
SpamAssassin Score: 1.179
Message is NOT marked as spam
Points breakdown:
0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked.
See
http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
for more information.
[URIs: example.com]
0.0 HTML_MESSAGE BODY: HTML included in message
0.3 HTML_IMAGE_ONLY_04 BODY: HTML: images with 0-400 bytes of words
0.7 MPART_ALT_DIFF BODY: HTML and text parts are different
0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid
0.0 TVD_SPACE_RATIO No description available.
0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid
尽管它在另一部分(在该报告上方的 DKIM 信息中)说它是有效的。它准确地说:
Validating Signature
result = pass
在mxtoolbox中,它没有显示我的 DNS 条目中有任何语法问题。它能够毫无问题地解析公钥。
我该怎么做才能找到我的 DKIM 设置问题?
显然我链接的站点上的测试有问题,所以,我找到了两种方法来测试我的配置(SSL、SPF、DKIM 和 DMARC):
使用 gmail。只需在 gmail 中向您的某个帐户发送电子邮件,然后检查邮件的标题。Gmail 有一个部分显示测试是否通过。
您可以使用port25。那里有一个电子邮件地址。给它发送一封电子邮件,它会回复一个报告,表明您的配置是否正常。
试试这个DKIM 密钥检查器。它将查询 DNS 区域并验证服务器和区域文件之间的密钥对应关系。
另外,我建议不要在数字海洋中运行电子邮件服务器,因为它毫无意义。如果您计划在云中运行邮件服务器,我建议您在 EC2 实例上运行它。