【发布时间】: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.ccdomains 来自其索引,如果他们也对电子邮件有限制,我不会感到惊讶。考虑获取一个普通域,.co.cc与垃圾邮件相关联。老实说,我从未在.co.cc上看到过合法网站...
标签: php smtp gmail google-apps phpmailer