从多个来源/服务器发送电子邮件时 DKIM 如何工作?

从多个来源/服务器发送电子邮件时 DKIM 如何工作?

因此,如果我正确理解了 DKIM,它基本上是一种公钥/私钥类型的服务。但是,如果您从多个服务器/来源发送电子邮件,它如何工作?例如,我有一个拆分域,我从托管的 Exchange 服务器发送一些电子邮件(在同一个域下),从 cPanel 共享托管帐户发送一些电子邮件。最重要的是,我允许第三方(计费服务、营销电子邮件服务等)发送一些电子邮件,以便他们可以使用我的域发送。更糟糕的是,其中一些服务甚至不提供 DKIM 支持。我的 SPF 记录是正确的,但我也想让 DKIM 正常工作(因为 Google 现在将我的很多电子邮件标记为垃圾邮件,显然您需要启用 DKIM 才能让他们那边的事情顺利进行)。非常感谢任何帮助。谢谢!

PS 如果我能够在我使用的某些服务器上启用 DKIM,这样做是否会导致未带 DKIM 签名的电子邮件被标记?例如,入站电子邮件服务器是否始终会查询我的域以获取 DKIM 公钥,然后如果他们在标头中找不到 DKIM 签名,那么电子邮件可能会被标记或丢弃?

答案1

解释

DKIM 的目的是对邮件头和正文进行签名,从而验证邮件的来源以及邮件是否被修改。在某些垃圾邮件过滤器上获得更好的声誉只是副产品,而不是实施 DKIM 的主要原因。

为了允许从多个系统对同一域进行 DKIM 签名而无需共享私钥,DKIM 具有选择器RFC 5376, 3.1): 这签名头有一个s=someselector在公钥的 DNS 查询中使用的标签someselector._domainkey.example.com. TXT

  • 由于选择器可以是任何内容,因此您可以在多个服务上添加签名,只要它们不使用重叠的选择器名称即可。某些服务在使用固定选择器名称方面的实现不佳:例如Microsoft 365总是用户selector1selector2,而G Suite允许您修改选择器并默认为google

  • 使用选择器有一个缺点:DKIM 的一个弱点是它只能用于验证已签名的消息,但它本身没有方法来判断消息是否应该签名:如果电子邮件服务器收到没有签名的邮件,它无法检查 DNS 是否有 DKIM 密钥,因为它不知道地址。从这个角度来看,对来自某些来源的消息进行签名,但留下一些未签名的消息也是完全可以的,这就是你所要求的。

DMARC是一种可以用来判断消息是否应该用对齐DKIM 标头或使用对齐方式传递 SPF信封发件人。它还可用于收集有关从您的域作为地址发送的邮件是否From会通过 DMARC 的见解,以及它们是否使用 SPF、DKIM 或两者进行对齐。

虽然 yagmoth555 的答案可能是解决您问题的一种解决方案,也是一个非常合适的替代方案,但它并不是一个典型的解决方案。更重要的是,出于我上面描述的原因,没有必要采取这种方式来开始实施 DKIM。

建议

  • 为您可以使用的服务启用 DKIM 签名,并记得添加 DNS 记录。
  • 此时,不要担心缺乏 DKIM 签名功能的服务。您可以开始建议或要求他们尽快添加此功能。如果他们从客户那里得到这种反馈,他们就会意识到他们的竞争对手可能已经领先于他们。
  • 添加 DMARC 策略,p=none并获取有关进展情况的报告。这使您可以轻松地调整系统:您可以继续实施 DKIM,切换到支持 DKIM 的系统或开始向另一个域发送不兼容的消息。一旦您的所有合法邮件开始通过 DMARC 测试,您就可以转向更严格的 DMARC 策略。rua=mailto:[email protected]From

答案2

您可以使用云服务,它允许您使用它为您的所有服务(智能主机)发送电子邮件。

您在该中心点启用 DKIM。

为客户设置了该设置。然后,您允许所有其他提供商通过那里发送。就我而言,我使用了 Trendmicro 电子邮件安全,它允许入站扫描,但也允许出站扫描和 DKIM 签名。

相关内容