我的问题是,SPF检查信封地址,因此当供应商代表我们发送邮件时,发件人地址将是我们公司的地址(例如abc@companyname.com),而信封的发送方将是供应商的地址(例如abc@vendorname.com)。那么SPF会如何通过呢?SPF会检查信封发送方的DNS服务器吗?我的理解正确吗?
其次,DKIM检查发件人地址还是信封发送方地址?当我们向供应商共享私钥时,它是如何工作的呢?
SPF:您说得对,供应商需要更改信封发件人地址以与您的组织域对齐。有些供应商可以很容易地完成这项工作,而其他一些则很困难,还有一些根本不会更改信封发件人地址。当您要求第三方更改其信封发件人时,需要记住一个重要的事情是,在大多数情况下,更改将使他们无法看到退信 - 第三方需要退信以进行列表清洁等 - 这是一个问题。为了避免这种情况,让他们使用您的组织域的子域并在那里设置MX。例如,如果您的公司名称为companyname.com,第三方是vendorname.com,则让他们使用vendor-bounces.company.com的信封发件人,然后为vendor-bounces.company.com设置MX记录,指向vendorname.com,能够以对齐的方式解决该问题。
DKIM:DKIM本身不检查任何地址。如果您查看DKIM签名,您将看到一个d等于gmail.com等值。此域用于检索公钥以验证邮件。DKIM本身没有此要求,但DMARC要求在DKIM签名中的d =域与发件人标头中的组织域匹配。这是RFC 7489第3.1节中描述的标识符对齐。 (https://www.rfc-editor.org/rfc/rfc7489#section-3.1) 在实际层面上,您必须在DNS名称空间中发布公钥,签名的第三方必须使用随附的私钥来签署消息。通过在特定的DNS名称空间中发布pubkey,例如selector._domainkey.companyname.com,您授权任何持有私钥的人(如vendorname.com)发送经过DMARC身份验证的companyname.com电子邮件。
注:DMARC本身始终使用发件人头部,即用户看到的内容作为记录域。然后,标识符对齐要求个别身份验证协议(如SPF或DKIM) - 信封寄件人和d =域分别与发件人标头中的域对齐(基本匹配)。
希望这有所帮助。