发送邮件SMTP GMail和PHPMailer

时间:2017-06-03 15:30:44

标签: php email smtp phpmailer

我在使用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电子邮件帐户中,出厂身份验证为OFFAllow less secure appsON

我真的不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

我找到了创建Google App Password的方法并使用它来代替Gmail帐户密码:

$mail->Password = 'GOOGLE APP PASSWORD';

要创建应用密码,您需要设置Two factory authenticationhttps://support.google.com/accounts/answer/185839?hl=en,然后您可以创建应用密码 - https://support.google.com/accounts/answer/185833?hl=en

答案 1 :(得分:0)

  1. 通过https://myaccount.google.com登录到您的Google帐户
  2. 单击左侧菜单中的“安全性”。
  3. 向下滚动到“缺少安全的应用访问权限”部分。

    单击“打开访问权限(不推荐)”。

https://support.google.com/mail/thread/23875320?hl=en