Php 使用 gmail 和 SPF 记录处理发送邮件

Php send mail with gmail and SPF record handling

提问人:Kevin Lindmark 提问时间:1/4/2023 更新时间:1/11/2023 访问量:215

问:

我使用 Swiftmailer 库在 php 中发送邮件,例如:

$transporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls')
->setAuthMode('login')
->setUsername('[email protected]')
->setPassword('password');

$mailer = Swift_Mailer::newInstance($transporter);

我使用 Gmail Workplace,并尝试在我的 webb 主机(而不是 Google)上了解和设置 SPF。我应该为我自己的 IP 地址设置 gmail SPF 还是 SPF,以避免在我的服务器上通过 php 发送邮件,但使用 gmail SMTP 标记为垃圾邮件?

php gmail swiftmailer spf

评论


答:

0赞 Reinto 1/10/2023 #1

你已经使用针对 smtp.gmail.com 的凭据进行身份验证,因此你自己的 IP 地址与 SPF 配置无关。SPF 由接收服务器检查,其中连接服务器 (Google) 的 IP 地址会根据标头中找到的域中的 SPF 列表进行检查。Return-Path

然后,Google 会代表您将您的消息转发给目标收件人。因此,Google 的 IP 应该在您在标头中使用的域的 SPF 记录中(也称为退回地址或 smtp.mailfrom)。Return-Path

因此,要回答您的问题:对于您用于发送电子邮件的域(作为地址),您应该将 gmail 服务器作为授权主机。假设您不使用任何其他服务,则该 SPF 记录将如下所示:,如这篇 Google 支持文章中所述。Return-Path"v=spf1 include:_spf.google.com ~all"

根据 Jake 的评论,事实上,你也应该考虑实施 DKIM 和 DMARC,因为仅仅依靠 SPF 来防止欺骗是不够的,而且对电子邮件转发没有弹性。同样的文档,再上几个级别,列出了实现这一目标所需的所有操作

评论

1赞 Jake 1/11/2023
除了 Reintro 所说的之外,您还需要设置 DKIM 和 DMARC 记录以完成该集合。这将确保您的电子邮件有最好的机会被送达。