带有Gmail帐户和外部邮件服务器的SPF + DKIM + DMARC

我,米使用自己的域名(谷歌应用程序的Gmail)为我的项目。 现在我想添加外部邮件服务器来为用户发送通知。 Gmail不提供DKIM的私钥,并且如果在外部邮件服务器上生成密钥,则在严格规则的情况下,来自gmail的所有邮件都将被拒绝。 如何在这种情况下使用SPF + DKIM + DMARC来防止邮件欺骗?

将服务器添加到您现有的SPFlogging中,如ip4:<server ip address>

如果你想要DKIM签名的消息,你可以使用OpenDKIM ,一个stream行的milter,并更新您的DNSselect器。

您可能不需要编辑DMARClogging中的任何内容,但是如果您不确定,可以在DMARC部署工具页面find其中一些有用的资源。

如果您不使用gmail希望您发送电子邮件的服务器,则您将无法使用From:Header中的gmail电子邮件地址发送电子邮件。 这是恢复电子邮件地址信任的基本机制dkim,spf等正在做的事情。

据我所知。 如果您需要从您自己的服务器发送电子邮件,那么只需让自己的域名,创build自己的dkim私钥,并从合法的电子邮件地址@yourdomain发送。 您可以将发送至该地址的电子邮件转发给gmail。 你也可以设置Gmail使用smtp通过你的服务器发送邮件。

我希望我没有错过任何东西

我从2010年开始使用这样的configuration,其实DMARC后来进来了。 我使用Google Apps服务器通过Web客户端发送和接收电子邮件。 我的服务器只发送电子邮件而没有收到,所以不需要任何DNS MXlogging更改,而且服务器端口25也不会打开到Internet。

SPF

我想你已经超越了标准的Google指南,将你的域名附加到Google Apps。 因此,您只需要调整您的DNS区域SPF / TXTlogging以包含您的服务器:

 <yourdomain>. TXT "v=spf1 ip4:<yourserver-ip> include:_spf.google.com ~all" 

DKIM

如果您使用Google生成的密钥为您的域DNS区域configuration了DKIM,那么您也可以添加任意数量的自定义DKIM密钥,在此处查看更多信息: https : //support.google.com/a/answer/174124 。 所以你在域上的另一个DKIMlogging应该是这样的:

 <yoursercer-key-id>._domainkey.<yourdomain>. TXT "v=DKIM1; g=*; k=rsa; <dkim key data here>" 

Google会用密钥对外发电子邮件进行签名,以便接收方根据签署的密钥ID进行validation。 你的服务器的电子邮件应该由你自定义的DKIM用自己的密钥ID发送和签名,然后收件人电子邮件服务器/客户端将只是查找自定义密钥ID来validation源,而不是Google的 – 很好!

DMARC

最后我configuration了DMARC。 我收到了“admin @”帐户的DMARC报告,该帐户实际上托pipe在受监控的同一网域上,并位于Google Apps上。 另外,我使用Google的电子邮件别名技巧 “+ dmarc”轻松地过滤这些报告以标记它们。

 _dmarc.<yourdomain>. TXT ""v=DMARC1; p=none; rua=mailto:admin+dmarc@<yourdomain>"