我的网站上有一个表单,该表单应具有通过Gmail使用PHPmailer发送电子邮件的功能。我选择PHPmailer是因为我正在使用的免费托管站点不允许在php中使用mail()函数。我知道这个问题已经存在很长时间了,但是我从其他类似文章中看到的答案都没有为我解决。根本问题是我遇到错误,不确定其PHP代码是否相关或gmail问题。这只是错误SMTP Error: Could not authenticate
的最后一行。
我通过在Google设置中打开对安全性较低的应用的访问权限来调整了gmail的设置,已经转到了此链接 -> http://www.google.com/accounts/DisplayUnlockCaptcha,两次重设密码(不带特殊字符),并在我的php代码中更新密码。到目前为止,什么都没有。
<?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}";
}
}
?>