我在使用Google SMTP和最新版本的PHPMailer发送邮件时遇到问题。这里有很多问题,但答案对我来说并不适用。
我使用免费托管免费托管000webhost
。
这是我从PHPMailer
docs发送电子邮件的标准PHP代码:
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'GMAIL EMAIL ACCOUNT';
$mail->Password = 'MY PASSWORD FOR GMAIL EMAIL ACCOUNT';
$mail->SMTPSecure = 'tlc';
$mail->Port = 587;
$mail->SMTPDebug = 3;
$mail->setFrom('EMAIL ADDRESS', 'EXAMPLE');
$mail->addAddress('ADDRESS TO SEND', 'From contact form');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
我收到此错误:
.... 2017-06-03 15:15:33 SERVER - &gt;客户:535-5.7.8不接受用户名和密码。了解更多信息 535 5.7.8 https://support.google.com/mail/?p=BadCredentials 203sm11822739ywk.62 - gsmtp 2017-06-03 15:15:33 SMTP ERROR:密码命令失败:535-5.7.8不接受用户名和密码。了解更多信息 535 5.7.8 https://support.google.com/mail/?p=BadCredentials 203sm11822739ywk.62 - gsmtp 2017-06-03 15:15:33 SMTP错误:无法进行身份验证。 .....
如果我将ssl
与端口465
一起使用,我会看到相同的错误。
在我的Gmail
电子邮件帐户中,出厂身份验证为OFF
,Allow less secure apps
为ON
。
我真的不知道该怎么做。
答案 0 :(得分:0)
我找到了创建Google App Password
的方法并使用它来代替Gmail
帐户密码:
$mail->Password = 'GOOGLE APP PASSWORD';
要创建应用密码,您需要设置Two factory authentication
:https://support.google.com/accounts/answer/185839?hl=en,然后您可以创建应用密码 - https://support.google.com/accounts/answer/185833?hl=en
答案 1 :(得分:0)
向下滚动到“缺少安全的应用访问权限”部分。
单击“打开访问权限(不推荐)”。