php - 使用 gmail 帐户和 PHPMailer 从 Heroku 服务器发送电子邮件
问题描述
我有一个 Heroku 应用程序,它有一个发送电子邮件的 php 脚本。发送的电子邮件总是进入垃圾邮件。我知道这个问题之前已经被问过很多次了,但是我无法找到一个解决方案来帮助我在使用 gmail 帐户时解决没有自定义域的 Heroku 网站的问题。
假设 heroku 应用程序是 mywebsite.herokuapp.com,我的电子邮件是 mywebsite@gmail.com。根据我的研究,我知道问题可能是电子邮件是从我的服务器 mywebsite.herokuapp.com 发送的,但电子邮件地址是 gmail.com。
如果我使用$mail->Host = 'smtp.gmail.com';
这可能是问题吗?
根据我的研究,其他问题可能与 SPF 或 DKIM 有关,但似乎通过 gmail 帐户发送它可能不会成为问题?
服务器设置:
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'mywebsite@gmail.com';
$mail->Password = 'secretpassword';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
我花了很多时间尝试在网上查找它,但我发现的所有内容都与自定义域及其 DNS 设置(一开始)有关,而这是 Heroku 应用程序所没有的。
该链接提供了很多一般(非常有用的)信息,但我无法从中判断是否有适合我情况的解决方案。 这是我获得有用信息的壁橱,但它没有给我足够的信息继续下去。
有什么建议么?
谢谢
解决方案
从根本上说,如果您不通过 gmail 的服务器发送,则根本无法从 gmail 地址发送。他们的 SPF、DKIM 和 DMARC 记录不允许这样做。此外,您不能从不属于您的 gmail 地址或您的预定义别名发送。
PHPMailer 有一些关于避免垃圾邮件过滤器的文档(主要是看起来不像他们想要阻止的东西),但是您无能为力。
推荐阅读
- excel - 为每一列创建唯一的工作簿
- android - 我们如何以编程方式在 Android Q OS 中实现可搜索的进度条?
- typescript - 提取泛型类型不返回输入类型
- android - 从表面视图camera2 api获取相机预览帧
- javascript - 如何检测使用javascript单击了哪个按钮?
- django - 将整个 django 应用程序限制为普通用户
- php - Laravel Scout - 创建时不添加关系
- node.js - 我刚开始用 VS 代码学习 Node.js,在我尝试启动它之后出现错误:
- reactjs - react 在状态更改时不获取api属性,而是在重新渲染时获取?
- angular - 如何修复 angular4 muliselect 下拉错误?