【问题标题】:Send email from Heroku server using gmail account and PHPMailer使用 gmail 帐户和 PHPMailer 从 Heroku 服务器发送电子邮件
【发布时间】:2021-12-16 10:23:52
【问题描述】:

我有一个 Heroku 应用程序,它有一个发送电子邮件的 php 脚本。发送的电子邮件总是进入垃圾邮件。我知道这个问题之前已经被问过很多次了,但是我无法找到一个解决方案来帮助我解决 Heroku 网站的问题,没有自定义域,同时使用 gmail 帐户。

假设 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 应用程序无法做到这一点。

This 链接提供了很多一般(非常有用)的信息,但我无法从中判断是否有适合我情况的解决方案。 This 是我获得有用信息的壁橱,但它没有给我足够的信息来继续。

有什么建议吗?

谢谢

【问题讨论】:

    标签: php email heroku phpmailer


    【解决方案1】:

    基本上,如果您不通过 gmail 的服务器发送邮件,则根本无法从 gmail 地址发送邮件。他们的 SPF、DKIM 和 DMARC 记录不允许这样做。此外,您不能从不属于您的 gmail 地址或您的预定义别名发送。

    PHPMailer 有 some docs on avoiding spam filters(基本上看起来不像他们想要阻止的东西),但你无能为力。

    【讨论】:

    • Gmail 帐户是我的。这有什么不同吗?
    • 另外,我假设将主机设置为 smtp.gmail.com 不算通过 gmail 服务器发送,对吧?
    • 您可以通过自己的 gmail 地址发送,但只能使用您自己的地址(或预定义的别名)作为发件人地址。如果您尝试使用其他任何东西,它将被忽略。将Host 设置为smtp.gmail.com 通过gmail服务器发送,但您必须使用自己的帐户进行身份验证。
    • $mail->Username = 'mywebsite@gmail.com'; $mail->Password = 'secretpassword'; 本质上不是在验证我的帐户吗?你的意思是我应该在我的 gmail 帐户中的某个地方而不是通过代码进行身份验证?如果是这样,我在哪里可以做到这一点?
    • 哦,我想我当时印象错了!最好的办法是检查 gmail 中的标头。 Google 的过滤器通常很严厉,但它们至少通常会告诉您他们不喜欢某条消息的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2017-04-12
    • 2012-03-30
    • 1970-01-01
    • 2013-03-24
    • 2017-04-17
    • 1970-01-01
    相关资源
    最近更新 更多