我在我的 VPS 上使用邮件启用功能,并将生成的 DKIM(参见屏幕截图 1)复制到我的 DNS。(是的,我已经重新启动了 VPS):
现在我的 DNS 设置在托管公司 A 配置,并指向我在公司 B 托管的 VPS:
现在奇怪的是,当我尝试检查 DKIM 有效性时,dmarcanalyzer.com 说它不正确,而 mxtoolbox.com 显示它是正确的。
我从 Google(和其他电子邮件服务提供商)获得的 DKIM 报告显示了fail
dkim 节点。请在此处查看完整报告:
我正在通过 发送电子邮件localhost
(并且希望继续这样做),但也想知道localhost
特定域的 DKIM 是否会发生冲突并导致此问题。
我已经联系了托管公司 A,他们表示 DNS 设置正确,并且他们那边的一切都已配置并按预期运行。我不知道现在我还可以在哪里配置我的 DKIM 设置。
我也在这里检查过:
更新 1
通过 mail-tester.com,我获得您邮件的 DKIM 签名是:
v=1;
c=relaxed/relaxed;
h=mime-version:from:date:message-id:subject:to:content-type;
d=example.com;
s=default.domainkey;
a=rsa-sha256;
bh=9GbEYuoERz+rKK0duec8ZYNDPzF429KQdM3YJavh32U=;
b=YQxDCBHCx1n1aLE0uVyOb2QsT2wOnkFqziZcyZtdNsGtMwz2y7ItPpB1MMkL5VZJl8Jgtszh9DomKhBPQ50WwAmIi/ayrR8hq61h0I2zdBNOs9A2bTYSBd/H11iTXGOuc8FFS3GHj+ohh3E+r+V6gvi4NF5shQ041OEdeZNUigUDRRr0eRDUnrK2/jq5ERWNDcg3MCDZI7Kcgj75BDJKfxBioVesKTV3/iLLuoBiDdVRdjqdAQC0Izc7KXweYab0wAiWvsCKvzBAyh0ieYFYHR4Wy3RAsKNUAwJkOJLF2IzvIBJaeIU8KVqJHONJ+IV40l13EsMZQUINZhJG9hvbbw==;
更新2
根据以下@anx 的建议,我生成了一个新密钥rsa2021
并将其添加到我的 DNS 中:
"v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAum44LLMyisKD6mOwTaXQqNjYsI6bNBS4uzhA03RaifyRDmmIKUPNv1bGb3QGihdDFzKbL+aax6o3INZSFcf1o5rKr8+3a2gAf+p2daNlycFQFmsWK94h4Vtu6j0VZ5E7bElFI0NQ/MYBOVwUST6H5DOsygGK9uWm8zVSBk8QtknZlLCPJYjHYc8V3dejnYcNIjBDtPKCB20E0q0pzIm63Dn8Z78J9wSvsSGl4FLN/3Tr96RLxwhqu+tFN04OVpdmlKnM7IQ3pGFMSEXqUoucndPUqzaNgT/u8GtowBoz72UgpDzuxkiehvg7PK/FPC6Vj/jTwe9d3oj/ZMN2ujMWYQIDAQAB;"
然后我通过以下方式发送一封电子邮件smtp.example.com
并检查此处:http://isnotspam.com
我仍然看到 DKIM 失败:
* 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid
X-Spam-Status: Yes, hits=6.4 required=-20.0 tests=BAYES_99,BAYES_999,
DKIM_SIGNED,HTML_MESSAGE,HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY,MISSING_SUBJECT,
SPF_PASS,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0
Envelope-to: [email protected]
Delivery-date: Fri, 13 Aug 2021 09:07:46 +0000
Received: from vpsnr12.myisp.com ([12.12.12.12] helo=mail.domainA.com)
by localhost.localdomain with esmtp (Exim 4.84_2)
(envelope-from <[email protected]>)
答案1
您的 DKIM 选择器很奇怪。
d=example.com; s=默认.domainkey;
尽管这是完全有效的..
选择器中允许使用句点,句点是组件分隔符。[..] 在 DNS 实现中,这可用于允许委派部分选择器命名空间。
.. 因为DKIM 密钥存储在名为“_domainkey”的子域中选择器还包含“domainkey”。如果你真的想要它作为选择器,你应该把钥匙放在default.domainkey._domainkey.example.com
- 我一开始没有注意到,因为我确认了密钥default._domainkey.example.com
。
推荐:去除额外的 domainkey
在这两个标签中。如果打算利用句点与 DNS 上下文中的点的含义进行交互,则只能在选择器中使用句点,否则它只会造成不必要的混淆。
配置一个密钥,其名称实际上对某些内容进行了编码,有助于记住该密钥是什么,或者在以后的某个时候:曾是(这是我推荐以下东西的主要原因rsa2021
结束default
)。根据您的邮件服务器的配置方式,您可能需要删除放错位置的密钥并生成一个新密钥,这次从一开始就设置一个名称 - 这是为了避免配置中的其他不匹配。