Ada*_*dam 2 domain-name-system vps dkim
我在我的 VPS 上使用 Mail Enable,并将生成的 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==;
Run Code Online (Sandbox Code Playgroud)
更新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: ins-b3zwrk2j@isnotspam.com
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 <info@example.com>)
Run Code Online (Sandbox Code Playgroud)
您的 DKIM 选择器很奇怪。
d=example.com;s=default.domainkey;
虽然这是完全有效的..
选择器中允许使用句点,并且句点是组件分隔符。[..] 在 DNS 实现中,这可用于允许选择器命名空间的一部分的委派。
.. 因为DKIM 密钥存储在名为“_domainkey”的子域中,所以选择器也包含“domainkey”是不常见的。如果您确实希望将其作为选择器,则可以将密钥放在default.domainkey._domainkey.example.com
- 我一开始没有注意到,因为我在 处确认了密钥default._domainkey.example.com
。
建议:删除两个此类标签中多余的部分。 domainkey
如果打算利用它与 DNS 上下文中点的含义的交互方式,则只能在选择器中使用句点,否则它只是不必要的混乱来源。
配置一个密钥,其名称实际上编码了一些东西,有助于记住这个密钥是什么,或者在以后的某个时候:was(这是我推荐诸如rsa2021
over之类的东西的主要原因default
)。根据邮件服务器的配置方式,您可能需要删除放错位置的密钥并生成一个新密钥,这次从一开始就设置一个名称 - 这是为了避免配置中出现其他不匹配情况。