假设我拥有example.com
,我在我的服务器上安装并配置 dkim(apt-get install opendkim opendkim-tools
等等),并且我将相关公钥添加到域的 DNS 记录中。
然后,当从我的服务器发送电子邮件时(例如:使用 PHPmail(...)
或 postfix),它将具有 DKIM 签名。
[email protected]
但我也使用 Gmail发送电子邮件“以...身份发送邮件”具有发送网格SMTP。
但是我在 Gmail 中没有看到 DKIM 的设置。 从 Gmail 发送的邮件是否会因为未使用 DKIM 签名而被禁止/无法正确发送?
如何使用 DKIM 从 Gmail 向我的域名发送电子邮件?(使用发送邮件为特征)
注意:这是“以...身份发送邮件”我正在谈论的功能:
(来源:slipstick.com)
答案1
域名密钥识别邮件(DKIM)用于确保邮件内容在传输过程中不会被篡改。与发件人策略框架(SPF)它不会尝试验证邮件来源是否为允许的发件人。 RFC 5585, 1.1 DKIM 的范围解释这一点:
DKIM 旨在作为电子邮件的增值功能。未经 DKIM 签名的邮件的处理方式与 DKIM 定义之前相同。邮件将通过既定的分析和过滤技术进行评估。(签名策略可以为该分析和过滤提供更多信息。)随着时间的推移,DKIM 的广泛采用可以允许对未签名的邮件进行更严格的处理。但是,早期的好处并不需要这样做,而且可能也不需要这样做。
因此,仅对包含签名的电子邮件执行有关 DKIM 的检查。除非DMARC(除其他目的外,可视为更严格的处理正如所提到的,不使用 DKIM 签名邮件不会导致邮件被拒绝。
答案2
SendGrid、Gmail 等将使用适当的DKIM 选择器,因此不会有任何重叠。
例如,如果您未在 SendGrid 上获得白标,他们将与 签约s=smtpapi, d=sendgrid.net
。他们在 有记录smtpapi._domainkey.sendgrid.net
。如果您是在 SendGrid 上白标(你应该这样做),你将创建一个 DNS 记录,要么m1._domainkey.example.com
,要么s1._domainkey.example.com
,它们分别包含公钥,或公钥的 CNAME。Google 应用使用选择器ga1
;我不确定 Gmail 本身使用什么。你自己的服务器发送的邮件也会使用任何选择器您在设置 DKIM 时定义。
当接收服务器验证 DKIM 签名时,它会s=
在查询公钥时考虑签名的值。这是 DKIM 的一项重要功能,因为它允许您轮换公钥以确保安全,并允许您让 ESP 代表您签名,或满足任何其他需要多个密钥的需求。