&引用;SMTP错误:无法验证";在PHPMailer中
我在一个简单的脚本中使用PHPMailer通过Gmail发送电子邮件,我得到了一个“未知错误”(至少对我来说是这样!): SMTP错误:无法进行身份验证。 错误:SMTP错误:无法 验证 SMTP服务器错误:5.7.1用户名和密码 密码不被接受。了解更多信息,请访问 535 5.7.1 p38sm2467302ybk.16 我已经读过关于为SSL/TLS连接配置OpenSSL的内容,并且我做到了。Apache和PHP已正确配置(OpenSSL扩展在PHP中运行,mod_ssl在Apache 2.2.16中运行) 这是PHP脚本:&引用;SMTP错误:无法验证";在PHPMailer中,php,phpmailer,Php,Phpmailer,我在一个简单的脚本中使用PHPMailer通过Gmail发送电子邮件,我得到了一个“未知错误”(至少对我来说是这样!): SMTP错误:无法进行身份验证。 错误:SMTP错误:无法 验证 SMTP服务器错误:5.7.1用户名和密码 密码不被接受。了解更多信息,请访问 535 5.7.1 p38sm2467302ybk.16 我已经读过关于为SSL/TLS连接配置OpenSSL的内容,并且我做到了。Apache和PHP已正确配置(OpenSSL扩展在PHP中运行,mod_ssl在Apache 2.
<?php
require_once ("PHPMailer\class.phpmailer.php");
$Correo = new PHPMailer();
$Correo->IsSMTP();
$Correo->SMTPAuth = true;
$Correo->SMTPSecure = "tls";
$Correo->Host = "smtp.gmail.com";
$Correo->Port = 587;
$Correo->UserName = "foo@gmail.com";
$Correo->Password = "gmailpassword";
$Correo->SetFrom('foo@gmail.com','De Yo');
$Correo->FromName = "From";
$Correo->AddAddress("bar@hotmail.com");
$Correo->Subject = "Prueba con PHPMailer";
$Correo->Body = "<H3>Bienvenido! Esto Funciona!</H3>";
$Correo->IsHTML (true);
if (!$Correo->Send())
{
echo "Error: $Correo->ErrorInfo";
}
else
{
echo "Message Sent!";
}
?>
用户名和密码都可以,我在Thunderbird中试过了,没有任何问题。
我还使用了SSL身份验证和端口465,得到了相同的错误 试试这个:
$Correo->用户名foo@gmail.com";
我测试了它,它工作得很好,没有任何其他更改我收到了这个错误,因为密码中有百分号。我收到了相同的错误,在我的情况下是密码。“我的密码”有特殊字符,如果您提供的密码没有转义特殊字符,则错误将继续显示。例如
$mail->Password=“por$ch3”代码>有效,但使用上面的代码将不起作用。解决方案如下:$mail->Password=“por\$ch3”代码>注意我在密码中美元字符前的反斜杠。如果你有一个使用特殊字符的密码,这应该是可行的
这是GMail的问题
阅读此谷歌帮助()
打开您的web浏览器并登录到Gmail。如果您看到word验证请求,请在扭曲的图片中键入字母并完成登录
关闭浏览器,然后再次尝试访问电子邮件客户端中的邮件
如果您仍然有问题,请访问并使用您的Gmail用户名和密码登录。如有必要,请在扭曲的图片中输入字母
单击“继续”
重新启动邮件客户端,然后再次尝试访问电子邮件客户端中的邮件
对我来说,我的密码字段中有一个特殊字符,我把它放在$mail->password=“por$ch3”中,它适用于gmail smpt服务器,但不适用于其他服务器;所以我把双引号改成了单引号,这对我很有用$邮件->密码='por$ch3' 如果您在发送电子邮件时仍然遇到错误,则会显示相同的错误消息。试试这个:
$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';
就在排队前:
$send = $mail->Send();
或者在调用Send()函数之前
测试和工作。我在身份验证方面也有同样的问题。修复方法是设置两步验证并为设备创建特定于应用程序的密码(阻止设备的错误消息将出现在您的帐户设置中->如果您的问题与我的问题相同,则“通知和警报”)我遇到了此问题。为了让它工作,我必须进入->“登录和安全”->“具有帐户访问权限的应用程序”,然后将“允许不太安全的应用程序”打开(靠近页面底部)
或者,您也可以按照此操作
这是selinux发行的。我刚刚在/etc/selinux/config文件中更新了下面给定的部分
SELINUX=permissive
(之前是SELINUX=强制执行)。
然后只需重新启动系统,给出
重新启动
现在邮件可以顺利地发送了。
配置
From Email Address : [noreply@yourdomain.com]
From Name : [your domain name]
SMTP Host : smtp.gmail.com
Type of Encryption : SSL
SMTP Port : 465
SMTP Authentication : YES
Username : [your mail id]
Password : [your password]
我也遇到了同样的问题,我做了所有的提示,包括Gmail设置(例如,不太安全的应用程序访问),但运气不好。但最后,当我将密码更改为其他密码时,由于某种原因,它起了作用!仅供参考,初始密码没有任何特殊字符。在Wordpress中配置WP Mail SMTP
插件时,我遇到了相同的错误
即使我“三次检查”了设置和登录凭据,并且能够使用浏览器手动登录,问题仍然存在
这里有一个修复此问题的步骤列表
为要使用的Gmail帐户创建新密码
在中启用不太安全的应用程序
使用授予您的应用程序或网站登录Gmail的权限。单击继续
或按照说明操作
使用应用程序或网站登录。适用于我的smtp设置是1)smtp主机:smtp.gmail.com 2)smtp端口:587 3)加密:TLS 4)身份验证:smtp身份验证5)用户名:example@gmail.com6)密码:examplesecret
SMTP错误:无法进行身份验证
我也有同样的问题。以下故障排除步骤对我有所帮助
- 我在我的gmail帐户中关闭了双因素身份验证
- 我允许不太安全的应用程序访问我的gmail帐户。为了让它正常工作,我必须进入
myaccount.google.com
->登录和安全
->具有帐户访问权限的应用程序
,然后将允许不太安全的应用程序
转到上(靠近页面底部)
- 在这一步,当我试图注册一个用户时,我会得到同样的错误。谷歌会向我发送一条警告消息,说有人拥有我的密码,登录被阻止
- Gmail将为你提供选择。您可以单击该活动是否属于您。单击该活动属于您的选项
- 请再次尝试注册。现在应该可以了
您的代码没有问题
按照以下两个简单步骤从phpmailer发送电子邮件
- 如果已启用,则必须禁用google帐户的两步验证设置
- 打开,允许访问不太安全的应用程序
另一篇文章正确地解决了这个问题,但没有说明如果启用了两步验证,如何解决这个问题。允许不太安全的应用程序的选项当时不可用。以下是如何做到这一点的答案:
a. Go to the URL of `https://myaccount.google.com/` and click `Sing-in and security`
b. Click on the app password.
这个
You will reach a page like this,
c. Create name of your app and generate a password for the respective app.
d. Use that password acquired here inside the app.