当前位置: 首页 > 知识库问答 >
问题:

SMTP错误:无法进行身份验证。无法发送消息。邮件程序错误:SMTP错误:无法进行身份验证

岳杜吟
2023-03-14

当我尝试使用PHP SMTP电子邮件服务器发送电子邮件时,发生了以下错误。

SMTP Error: Could not authenticate. Message could not be sent.

邮件程序错误:SMTP错误:无法进行身份验证。

下面是我使用的代码。

function supervisorMail(){

global $error;
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = "***@gmail.com";
$mail->Password = "****";
$mail->SetFrom("***@gmail.com", "Employee Leave Management System");

$userID=$_SESSION['userID'];

$select_query = mysql_query("SELECT * FROM employee WHERE emp_id = '$userID'");
$select_sql = mysql_fetch_array($select_query);
$name=$select_sql['manager_name'];
var_dump($name);

$select_query1 = mysql_query("SELECT email FROM employee WHERE emp_id='$name'");
$select_sql1 = mysql_fetch_array($select_query1);
$email=$select_sql1['email'];
    var_dump($email);

$mail->Subject = "subject ";
$mail->Body = "something.";
$mail_to = $email;
$mail->AddAddress($mail_to);

if(!$mail->Send())
{
    echo "Message could not be sent. <p>";
    echo "Mailer Error: " . $mail->ErrorInfo;
    exit;
}

echo "Message has been sent";

}

如何修复此错误。

共有3个答案

云韬
2023-03-14

正如评论中提到的,您需要输入有效的gmail id和密码。

请参考下面的演示代码。

<?php
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$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 = '*****001@gmail.com';  // SMTP username
$mail->Password = 'ma****02';    // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to
$mail->setFrom('ravi******@gmail.com', 'Mailer'); // Add set from id
$mail->addAddress('er.ravihirani@gmail.com', 'Ravi Hirani');     // Add a recipient
//$mail->addAddress('ellen@example.com');               // Name is optional
//$mail->addReplyTo('info@example.com', 'Information');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');
//$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
//$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';
if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}
庄元龙
2023-03-14

请关闭不太安全的应用程序,然后尝试对此行进行评论

//$mail-

我希望它能起作用!

公西马鲁
2023-03-14

错误消息非常清楚“无法验证”。我想说你正确地使用了PHPMailer类,只是没有填写正确的gmail帐户详细信息。

我想在你的问题中,用户名和密码字段看起来像

$mail->Username = "@gmail.com";
$mail->Password = "";

很明显,因为你不想分享它们,我建议你在问题中这样介绍它们

$mail->Username = "********@gmail.com";
$mail->Password = "********";

因此如果您使用正确的用户名和密码还有其他两件事要检查

>

如果启用了该选项,您的gmail帐户中可能启用了两步验证。如果是这种情况,您需要创建特定于应用程序的密码。

按照这个链接一步一步地指导如何做html" target="_blank">http://email.about.com/od/gmailtips/fl/How-to-Get-a-Password-to-Access-Gmail-By-POP-or-IMAP.htm

 类似资料:
  • 凭据正确。5.7.57 SMTP-客户端未通过身份验证以发送邮件,535 5.7.139身份验证不成功 在中使用SMTP发送电子邮件时返回此错误。网 此应用程序部署在Azure中不确定是什么导致了问题,之前它正在工作,突然停止了。 已尝试使用交换服务器抛出401未授权错误。

  • 问题内容: 我在用于通过Gmail发送电子邮件的简单脚本中使用PHPMailer,但遇到“未知错误”(至少对我来说!): SMTP错误:无法验证。错误:SMTP错误:无法验证。 SMTP服务器错误:5.7.1不接受用户名和密码。要了解更多信息,请访问535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 p38sm24

  • 我目前拥有的代码是: 我试图发送到的电子邮件地址托管在Office 365的Outlook上。我们可能需要稍后更改特定地址,但它们可能配置相同。 但是,每当我尝试运行命令时,都会收到同样的错误,错误的全文是: 我已经尝试了一些不同的方法,比如在25到587之间切换端口,将主机更改为office365的,或者将和切换为true或false。但是我总是看到同样的错误。我还遗漏了什么吗?

  • SMTP服务器 ;                  [myserverName] 默认用户电子邮件后缀 ; [myemailId] 使用SMTP身份验证 ; true 用户名称 ;                     [myemailId] 密码 ;                       [mypassword] 使用SSL ;                       假 SMTP

  • 我通过运行以下代码得到下面的错误。 错误:decipheriv.final(node:internal/crypto/cipher:196:29)在decrypt(/users/username/dev/playground/node/src/index.ts:14:65)处处于不支持状态或无法对数据进行身份验证 节点中aes-128-gcm的“不支持状态或无法验证数据” 在nodejs解密中获取

  • 我正在尝试使用smtplib在python 2.7中发送邮件。下面的代码非常简单: 现在当我执行下面的代码时,我不断得到这个异常: