为什么在尝试发送电子邮件时phpmailer出现此错误? [英] Why do I get this error with phpmailer when trying to send an email?

查看:75
本文介绍了为什么在尝试发送电子邮件时phpmailer出现此错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

错误:

2021-03-19 15:17:50 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP t24sm3903607qto.23 - gsmtp
2021-03-19 15:17:50 CLIENT -> SERVER: EHLO localhost
2021-03-19 15:17:50 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [24.233.165.10]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
2021-03-19 15:17:50 CLIENT -> SERVER: STARTTLS
2021-03-19 15:17:50 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
2021-03-19 15:17:50 CLIENT -> SERVER: EHLO localhost
2021-03-19 15:17:50 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [24.233.165.10]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
2021-03-19 15:17:50 CLIENT -> SERVER: AUTH LOGIN
2021-03-19 15:17:50 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2021-03-19 15:17:50 CLIENT -> SERVER: [credentials hidden]
2021-03-19 15:17:50 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2021-03-19 15:17:50 CLIENT -> SERVER: [credentials hidden]
2021-03-19 15:17:51 SERVER -> CLIENT: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/?p=BadCredentials t24sm3903607qto.23 - gsmtp
2021-03-19 15:17:51 SMTP ERROR: Password command failed: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/?p=BadCredentials t24sm3903607qto.23 - gsmtp
SMTP Error: Could not authenticate.
2021-03-19 15:17:51 CLIENT -> SERVER: QUIT
2021-03-19 15:17:51 SERVER -> CLIENT: 221 2.0.0 closing connection t24sm3903607qto.23 - gsmtp
SMTP Error: Could not authenticate.
Message could not be sent. Mailer Error: SMTP Error: Could not authenticate.

我的代码:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
 
require 'PHPMailer/PHPMailer/src/Exception.php';
require 'PHPMailer/PHPMailer/src/PHPMailer.php';
require 'PHPMailer/PHPMailer/src/SMTP.php';
 
// Instantiation and passing [ICODE]true[/ICODE] enables exceptions
$mail = new PHPMailer(true);
 
try {
    //Server settings
    $mail->SMTPDebug = 2;                                       // Enable verbose debug output
    $mail->isSMTP();                                            // Set mailer to use SMTP
    $mail->Host       = 'smtp.gmail.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = 'kadenskinner@gmail.com';                     // SMTP username
    $mail->Password   = '*************';                               // SMTP password
    $mail->SMTPSecure = 'tls';                                  // Enable TLS encryption, [ICODE]ssl[/ICODE] also accepted
    $mail->Port       = 587;                                    // TCP port to connect to
 
    //Recipients
    $mail->setFrom('kadenskinner@gmail.com', 'Mailer');
    $mail->addAddress('kadenskinner@gmail.com', 'Recipients');     // Add a recipient
    //$mail->addAddress('');
    $mail->addReplyTo('kadenskinner@gmail.com', 'Mailer');
    //$mail->addCC('');
    //$mail->addBCC('');
 
    // Attachments
    //$mail->addAttachment('');         // Add attachments
    //$mail->addAttachment('');
 
    // Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $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';
 
    $mail->send();
    echo 'Message has been sent';
 
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

我启用的安全性较低的应用程序.我启用了IMAP.分两步验证.我从github下载了最新版本.该电子邮件是我的电子邮件,并且可以正常工作.我应该怎么办?我正在从xampp上的本地主机尝试此操作.我的密码是正确的.为什么会这样?

I have less secure apps enabled. I have IMAP enabled. Two step verification off. I downloaded the latest version from github. The email is my email and does work. What should I do? I am trying this from my localhost on xampp. My password is correct. Why does this happen?

推荐答案

您多次编辑您的问题,每次更改其含义时,由于它会产生评论的语气,因此应避免在以后使用.下次请取而代之,请先阅读错误消息并进行修复,然后再进行询问.您做错了(按出现的顺序)

You edited your question several times, each time changing its meaning, that should be avoided in future as it generates tones of comments. Instead next time pls, read error messages and fix them before asking. What you did wrong (in order of appearance)

  1. 不要为将来使用 没有值的赋值方法,例如 $ mail-> addAddress(''); $ mail-> addCC('')等,将导致错误.
  2. 使用正确的SMTP服务器地址.
  3. 使用正确的凭据.当然,登录名和密码 区分大小写.
  4. 如果仍然有凭据错误问题,请在Gmail帐户上
  5. 打开打开减少安全应用程序".可以在安全选项卡上完成此操作,如屏幕截图所示.
  1. Don't use assigning methods without values just for future like $mail->addAddress('');, $mail->addCC(''), etc, it will cause errors.
  2. Use proper SMTP server address.
  3. Use proper credentials. Of course login and password are case sensitive.
  4. Turn ON 'Less secure applications' on your Gmail account if still have problem with credentials errors. It can be done at the security tab as shown at screenshot

这篇关于为什么在尝试发送电子邮件时phpmailer出现此错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆