PHPMailer未返回错误但未发送任何电子邮件(Live Server)

PHPMailer未返回错误但未发送任何电子邮件(Live Server),php,phpmailer,Php,Phpmailer,我正在使用以下代码: <?php require ('PHPMailer/PHPMailerAutoload.php'); $mail = new PHPMailer; //$mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'allthingsremainhere@gmail.com'; $mail->Password = 'pa

我正在使用以下代码:

<?php
require ('PHPMailer/PHPMailerAutoload.php');
$mail = new PHPMailer;
//$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'allthingsremainhere@gmail.com';
$mail->Password = 'password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->SetFrom('youcanreply@lishup.com', 'Reply It! - LishUp');
$mail->AddAddress('techgoeshere@gmail.com', 'Tech');
$mail->Subject  = 'First PHPMailer Message';
$mail->Body     = 'Hi! This is my first e-mail sent through PHPMailer.';

if(!$mail->send()) {
  echo 'Message was not sent.';
  echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
  echo 'Message has been sent.';
}
?>

它正在返回“消息已发送”

我的电子邮件和密码没问题。这不是问题所在

在谷歌帐户中:2因素授权已关闭,且“允许不太安全的应用”已打开


我正在使用一个托管在谷歌云上的实时服务器。请帮我解决这个问题首先,您使用的是旧版本的PHPMailer

几乎所有代码都没有做任何事情,因为您注释掉了
isSMTP()
。这意味着PHPMailer将通过PHP的
mail()
函数发送,并且不会使用任何与SMTP相关的设置。因此,您的邮件将不会通过gmail发送,而是通过您的本地邮件服务器发送,该服务器将默默地接受您发送的任何邮件,但无法进一步转发。如果你的发送域使用的是gmail,你很可能无法通过SPF检查,并且你的邮件将永远无法发送


通过阅读本地邮件服务器的日志文件,您可以确切地看到邮件发生了什么,可能是
/var/log/mail.log
在这里,首先取消注释这一行

//$mail->isSMTP();


然后运行你的代码,它将尝试登录你的gmail帐户,如果安装了不太安全的应用程序,它将发送电子邮件,否则你将通过gmail收到电子邮件警报,如果你收到gmail警报,那么不太安全,那么只需打开它并再次运行代码,它就会正常工作。

只需添加$mail->SMTPDebug=true;若要在发送邮件时获取任何错误。PhpMailer提供了一种更改调试级别的方法,请参见此处:Nothing Changed您是否有权访问邮件日志?可能邮件服务器拒绝了它。@CountKyle很遗憾,没有。我无法访问我的邮件日志。当您在live server上时,isSMTP()只会抛出一个连接错误否,如果您的服务器有问题,它会抛出一个错误,例如,如果您的宿主提供程序阻止出站SMTP。关于如何诊断和修复此类问题,我们将在中进行详细讨论。否则,您的脚本没有问题。所以请发布错误消息!!!!还显示邮件服务器日志中的内容。邮件未发送。邮件程序错误:SMTP connect()失败。然后,您与SMTP服务器的连接出现问题,可能是端口、用户名、密码和加密错误
$mail->isSMTP();