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

Mar*_* NJ 5 email spam authentication spf dkim

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

PS 如果我能够在我使用的某些服务器上启用 DKIM,这样做会导致发送没有 DKIM 签名的电子邮件被标记吗?例如,入站电子邮件服务器是否总是会在我的域中查询 DKIM 公钥,然后如果他们在标题中找不到 DKIM 签名,则该电子邮件可能会被标记或丢弃?

Esa*_*nen 11

解释

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 签名能力的服务。您可以开始建议或要求他们尽快添加此功能。如果他们从客户那里得到这种反馈,他们就会意识到他们的竞争对手可能领先于他们。
  • p=none使用和添加 DMARC 策略rua=mailto:aggrep@example.com以获取有关事情进展情况的报告。这使您能够轻松地调整系统:您可以继续实施 DKIM、切换到支持 DKIM 的系统或开始发送与另一个From域不兼容的消息。一旦所有合法邮件开始通过 DMARC 测试,您就可以转向更严格的 DMARC 策略。


yag*_*555 1

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

\n\n

您在该中心\xe2\x80\x99s 点启用 DKIM。

\n\n

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

\n