当DKIM被安装,我仍然能够从我的域名从Gmail发送电子邮件?

假设我拥有example.com ,我在我的服务器 ( apt-get install opendkim opendkim-tools等) 上安装并configuration了dkim ,并且将相关的公钥添加到域的DNSlogging中。

然后当从我的服务器发送电子邮件(例如:与PHP mail(...)或后缀),它将有DKIM签名。

但是我也使用Sendmail 作为 Sendgrid SMTPfunction发送来自Gmail的[email protected] 电子邮件

但是我没有在Gmail中看到DKIM的设置。 从Gmail发送的邮件是否会被禁止/未正确发送,因为它们没有发送DKIM签名?

如何使用DKIM为我的网域从Gmail发送电子邮件? (使用发送邮件function)


注意:这是我正在谈论的发送邮件function:

在这里输入图像说明

域名密钥识别邮件 (DKIM)用于确保邮件内容在传输过程中不被篡改。 与发件人策略框架 (SPF)不同,它不是试图将邮件的来源validation为允许的发件人。 RFC 5585,1.1 DKIM的范围解释了这一点:

DKIM旨在作为电子邮件的增值function。 未被DKIM签名的邮件的处理方式与定义DKIM之前的方式相同。 该消息将通过build立的分析和过滤技术进行评估。 (签名策略可以为分析和过滤提供额外的信息。)随着时间的推移,广泛采用DKIM可以允许对未签名的邮件进行更严格的处理。 但是,早期的收益并不需要这个,可能不需要担保。

因此,仅对包含签名的电子邮件执行有关DKIM的检查。 除非DMARC要求(在其他目的中可能被视为更严格的处理 ),否则不与DKIM签署消息不会导致拒绝。

SendGrid,Gmail等将使用相应的DKIMselect器进行签名,因此不会有任何重叠。

例如,如果你在SendGrid上没有白标签,他们会用s=smtpapi, d=sendgrid.net 。 他们在smtpapi._domainkey.sendgrid.net有logging。 如果您 SendGrid上进行白色标记(您应该是),则您将创build一个DNSlogging,即m1._domainkey.example.coms1._domainkey.example.com ,它们将具有公钥或CNAME到公钥,分别。 Google应用使用select器ga1 ; 我不确定Gmail本身使用什么。 您自己的服务器发送的邮件也将使用您设置DKIM时定义的任何select器 。

当接收服务器validationDKIM签名时,它在查询公钥时考虑签名的s=值。 这是DKIM的一个重要特性,因为它允许您为了安全而轮换您的公钥,并且允许您以ESP的名义签名,或者任何其他需要多个密钥。