为通过 Google Apps SMTP 服务器发送电子邮件的 VPS 配置 SPF、DKIM、反向 DNS

为通过 Google Apps SMTP 服务器发送电子邮件的 VPS 配置 SPF、DKIM、反向 DNS

今天我们发现,所有发送到 类型的电子邮件地址的电子邮件<username>@corporatedomain.com都被拒绝了。我不知道谁在托管电子邮件corporatedomain.com。我认为这不重要。无论如何,我们收到的错误是

Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the server for the recipient domain example.com by mail.example.com. [yyy.yyy.yyy.230].

The error that the other server returned was:
550 5.7.1 Command rejected
  • 我们有一个 Google Apps 帐户mydomain.com。的 DNSmydomain.com有 SPF 记录v=spf1 mx include:spf.mailjet.com -all
  • 我们正在使用 Google Apps SMTP 服务器通过我的应用发送交易电子邮件。我们正在使用 mailjet 帐户发送批量营销电子邮件。
  • 由于该域的邮件由 Google Apps 处理,因此 MX 记录全部指向默认的 Google app。
  • 我的 VPS 有两个公共 IP 地址。我的 VPS 上没有安装 SMTP 服务器。我仅使用 Google Apps SMTP 服务器从 VPS 内部发送电子邮件。
  • 只有通过 Google App SMTP 服务器发送的电子邮件会被阻止。Mailjet 的电子邮件可以正常发送。

鉴于上述使用模式和 VPS 环境设置,我假设 SPF 将正确检查(MX 记录指向 Google 并且我正在使用他们的 SMTP 服务器发送电子邮件)。

谷歌搜索错误信息确实没有找到任何结果。最后我尝试通过把我能想到的任何东西都添加到 SPF 中来彻底解决这个问题。现在它起作用了。太棒了!spf 条目现在显示为

v=spf1 include:_spf.google.com include:spf.mailjet.com ip4:xxx.xxx.xxx.143 ip4:xxx.xxx.xxx.144 mx ~all

但我不确定它为什么有效。我真的不想做 atrial & error来找到适用于收件人域的最低限度设置。这些东西一定有规范,对吧?毕竟,所有电子邮件都会发送给所有用户(不包括属于的电子邮件corporatedomain.com)。

我怀疑在当前的 SPF 条目中,ip4机制以及机制mx都是不需要的。Google 文档建议使用include:_spf.google.com而不是mx。此外,这个以限制较少的结尾~all。旧 SPF 以高度限制的结尾-all。有人可以确认我的用例的理想 SPF 记录应该是什么吗?

附注:我现在已经为配置了 DKIM 身份验证mydomain.com。我不知道是否需要设置反向 DNS。我认为我不需要,因为我没有“发送”电子邮件,而是 Google Apps SMTP 服务器。如果我错了,请纠正我。

答案1

您最终添加的内容include:_spf.google.com可能是这里的关键部分。它将 Google 的服务器标记为代表您发送邮件的合法发件人。

相关内容