【问题标题】:PHPMailer SMTP works on local server, but not on production serverPHPMailer SMTP 适用于本地服务器,但不适用于生产服务器
【发布时间】:2023-03-04 17:30:01
【问题描述】:

我对 PHPMailer 进行了以下配置,它在我的 localhost 机器上运行良好,但在生产环境中不发送电子邮件:

//Send a notification email
try {
    $mail = new PHPMailer(true);
    $mail->IsSMTP();
    $mail->SMTPDebug = 0;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "tls";
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 587;
    $mail->Username = $username;
    $mail->Password = $password;
    $mail->AddAddress($_POST['username'], $name);
    $mail->SetFrom("no-reply@a-domain-setup-in-google-apps.com", "No-Reply");
    $mail->Subject = $subject;
    $mail->AltBody = $altBody;
    $mail->MsgHTML($bodyHTML);
    $mail->Send();
} catch (phpmailerException $e) {
    echo $e->errorMessage();
    exit;
} catch (Exception $e) {
    echo $e->getMessage();
    exit;
}

当我将 SMTP 调试设置为等于 2 时,我得到的结果如下:

SMTP -> FROM SERVER:220 mx.google.com ESMTP bo7sm9593967igb.2 
SMTP -> FROM SERVER: 250-mx.google.com at your service, [204.93.159.80] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250 PIPELINING 
SMTP -> FROM SERVER:220 2.0.0 Ready to start TLS 
SMTP -> FROM SERVER: 250-mx.google.com at your service, [204.93.159.80] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH 250-ENHANCEDSTATUSCODES 250 PIPELINING 
SMTP -> FROM SERVER:250 2.1.0 OK bo7sm9593967igb.2 
SMTP -> FROM SERVER:250 2.1.5 OK bo7sm9593967igb.2 
SMTP -> FROM SERVER:354 Go ahead bo7sm9593967igb.2 
SMTP -> FROM SERVER:250 2.0.0 OK 1341071123 bo7sm9593967igb.2

一切看起来都不错,但我不能再发送电子邮件了。

我确信用于发送电子邮件的 Google Apps 帐户配置正确(与以前一样),并且我的登录凭据正确。

有什么想法吗?

【问题讨论】:

  • 从输出看来它正在工作。您确定这封电子邮件没有进入垃圾邮件或被收件人地址过滤了吗?
  • 为什么它会在生产中,但从来没有在 localhost 测试中?
  • 您的生产服务器可能在灰名单上,或者其他什么。没有线索。但输出清楚地表明您的电子邮件已被接受。
  • 您检查过 Google App 电子邮件帐户的“已发送邮件”文件夹吗?
  • @spryno724: Google has banned all .co.cc domains 来自其索引,如果他们也对电子邮件有限制,我不会感到惊讶。考虑获取一个普通域,.co.cc 与垃圾邮件相关联。老实说,我从未在.co.cc 上看到过合法网站...

标签: php smtp gmail google-apps phpmailer


【解决方案1】:

您的电子邮件很可能没有送达,因为.co.cc 域与垃圾邮件相关联,通常是非合法网站; Google has banned all .co.cc domains from its index.

因此,他们也阻止或大量过滤来自这些域的电子邮件是有道理的。

考虑使用普通域,例如以.com 结尾的域。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多