我按照这些说明来设置PostDK的OpenDKIM,它工作的广告。 我发送的邮件中添加了DKIM-Signature标头,例如:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=example.com; s=mail; t=1398638300; bh=mk/7yYUxFCWz+ZHB0opJIA/S3J5ELoPZPfAO0KQdVg4=; h=Date:From:To:Subject:From; b=fPPfUliJUgA0re38nkJ2R18TeFgbamOv1U8nDb9958eTeAT6Mp7oq4WGrHPiPmc+b mrLu9RuW0/S4d0ipkilNZDxgecwl7qttrDbTEkWxdhwwTSe5FL3OBaUoUxJFrMGjmY RdBjY5ZWtvk29+gXZ+af5Of9OrY7COLlqGkFXRXw=
我的问题是关于上面的d=参数。 在一个邮件服务器处理多个虚拟域的外发邮件的情况下,d =是否应该包含发送邮件的邮件服务器? 还是应该是出现在From:地址的域?
我曾尝试阅读关于这个主题的RFC 6376 ,但是我发现的唯一相关的一点是:
d= The SDID claiming responsibility for an introduction of a message into the mail stream [...] The conventions and semantics used by a Signer to create and use a specific SDID are outside the scope of this specification
我希望这里有人知道如何在实践中使用d =参数。
来自发件人网域的DKIM签名是最可靠的,并且可能是发件人的电子邮件政策所要求的。 随着DMARC的推出,域名现在有可能发布一个策略,并对不符合策略的电子邮件进行所需的操作。
DKIM旨在匹配来自标题的发件人,该标题可能不是信封发件人。 SPFvalidation信封发件人的权限使用发送服务器为域发送邮件。 DMARC将两者联系在一起,以提供更好的政策框架。
所有这三种机制都要求将数据发布到相关域的DNS树中。
来自第三方的DKIM仅指示签名内容是否在签名后被修改。 这可能对拒绝有用,但不适用于发件人信誉。
您从错误的angular度来看问题 – 发件人的问题。 你应该从接收机的angular度来看它。
假设我们有一个[email protected]通过邮件服务器random.com向我们发送信息。 我们对任何一个域都一无所知。 来自[email protected]的邮件上的foo.com签名会告诉你什么? 很明显,它确实如此,因为foo.com可以对其控制的电子邮件帐户进行说明。 来自[email protected]的电子邮件中的random.com签名会告诉你什么? 很less。 random.com可能由垃圾邮件发送者控制,发送声称来自[email protected]的垃圾邮件以通过您的filter。 所以如果你对random.com一无所知的话,它的签名也没有意义。
此外,请记住允许电子邮件包含多个DKIM签名。 因此,如果您运行邮件列表,则发送到列表的邮件可能包含来自From头中的域的签名。 邮件列表可能也会使用信封中显示的列表域进行签名。 两者都给接收者提供有用的信息,帮助他们决定是否信任该消息。
在DKIM中,不要求d=值(或相关的i=值)与消息中的任何其他头部相匹配。 DKIM本身只validation签名者,而不是发送者,让接收者执行一些策略来使这些信息有用。
DMARC允许发件人域指定DKIM的策略,使DKIM签名对收件人更有用。 对于DMARC , d=和From:标头必须匹配 (或者完全相同,或者允许子域,具体取决于指定的严格性)。
对于OpenDKIM,您需要查看SigningTable和KeyTableconfiguration指令以正确处理多个域。
DKIM是基于域的。 它只讲述了电子邮件的签名域。 如果您使用的是电子邮件服务提供商的域名d = esp.com,则接收邮件系统将使用esp.com的信誉来决定电子邮件。 如果使用d = customer.com(例如,来自:地址的域名),则将使用customer.com的声誉分数。 所以如果esp.com有很高的声誉,那么使用d = esp.com是明智的。 否则坚持d = customer.com
从RFC 8376标准:
一旦签名被validation,该信息必须被传送给身份评估者(例如明确的允许/白名单和信誉系统)和/或最终用户。 如果SDID与From:头域中的地址不同,那么邮件系统应该尽量确保实际的SDID对读者是清楚的。
SDID:签名域标识符(= d)
更新:
更多关于作者签名vs dkim.org的第三方签名spec :
域名与RFC5322域名不符的签名有时被称为第三方签名。 虽然关于第三方签名的价值经常引起激烈的争论
对于某些人来说,与作者域(RFC5322.From地址中的域)无关的签名不太有价值,因为假定作者签名的存在保证RFC5322.From标头中地址的使用被授权。
对于其他人,这种相关性严格地与分配给所讨论的身份的logging的行为数据,即其信任评估或信誉相关联。因此,促进包含域的有效签名的消息强大的积极声誉,而不pipe该域是否与RFC5322.From中的地址相关联。
从Gmail查看一些邮件,我发现d参数包含信封发件人的域名。 所以,在MAIL From SMTP命令中使用的地址是在d参数中使用的地址。
我想不出任何其他决定域名的方法,这比使用信封发件人更有意义。