如何修复显示SMTP错误的PHPMailer错误:无法通过身份验证。用户名和密码不被接受吗?

时间:2019-04-14 19:46:40

标签: php phpmailer

我的网站上有一个表单,该表单应具有通过Gmail使用PHPmailer发送电子邮件的功能。我选择PHPmailer是因为我正在使用的免费托管站点不允许在php中使用mail()函数。我知道这个问题已经存在很长时间了,但是我从其他类似文章中看到的答案都没有为我解决。根本问题是我遇到错误,不确定其PHP代码是否相关或gmail问题。这只是错误SMTP Error: Could not authenticate的最后一行。

我通过在Google设置中打开对安全性较低的应用的访问权限来调整了gmail的设置,已经转到了此链接 -> http://www.google.com/accounts/DisplayUnlockCaptcha,两次重设密码(不带特殊字符),并在我的php代码中更新密码。到目前为止,什么都没有。

enter image description here

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

if (isset($_POST['submit'])){

require_once 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {

$mail->SMTPDebug = 2;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Username = '@@@';  //My user name
$mail->Password = '@@@';  //My password


$mail->setFrom($_POST['email'],$_POST['name']);
$mail->addAddress('lmnlisbautista@gmail.com');
$mail->addReplyTo($_POST['email']);

$mail->isHTML(true);
$mail->Subject='Form Submission:';
$mail->Body='<h1>Name :'.$_POST['name'].'<br>Email: '.$_POST['email']. 
'<br>Message: '.$_POST['message'].'</h1>';

$mail->send();
echo 'Message has been sent!';

} catch(Exception $e){
     echo "Message could not be sent! Error: {$mail->ErrorInfo}"; 
}
}


?>

0 个答案:

没有答案