我在简单脚本中使用PHPMailer通过Gmail发送电子邮件,我收到“未知错误”(至少对我来说!):
SMTP错误:无法进行身份验证。 错误:SMTP错误:无法 认证
SMTP服务器错误:5.7.1用户名和 密码不被接受。了解更多信息 535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 p38sm2467302ybk.16
我读过有关配置OpenSSL For SSL / TLS Connections的内容,我做到了。 Apache和PHP已正确配置(OpenSSL扩展在PHP中运行,mod_ssl在Apache 2.2.16中运行)。
这是PHP脚本:
<?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,获得了相同的错误。
答案 0 :(得分:61)
我遇到了这个问题。为了让它工作,我不得不去myaccount.google.com - &gt; &#34;登录&amp;安全&#34; - &GT; &#34;具有帐户访问权限的应用&#34;,并转过&#34;允许安全性较低的应用&#34;到&#34; ON&#34; (靠近页面底部)。
答案 1 :(得分:24)
请改为尝试:
$ Correo-&gt; 用户名 =“foo@gmail.com”;
我测试了它并且它完美运行而没有其他变化
答案 2 :(得分:21)
这是GMail问题
阅读此Google帮助(https://support.google.com/mail/answer/14257?p=client_login&rd=1)
答案 3 :(得分:7)
我收到了同样的错误,在我的情况下,它是密码。我的密码有特殊字符,如果您提供密码而不转义特殊字符,则错误将继续显示。 E.g $mail->Password = " por$ch3";
有效,但无法使用上述代码。解决方案应如下所示:$mail->Password = "por\$ch3";
注意我在密码中放置美元字符之前的反斜杠。如果你有一个使用特殊字符的密码
答案 4 :(得分:3)
我收到此错误是因为密码中有百分号。
答案 5 :(得分:3)
对我来说,我的密码字段中有一个特殊的字符,我把它写成$ mail-&gt; Password =“por $ ch3”,它适用于gmail smpt服务器但不适用于其他服务器;所以我只是将双引号更改为单引号,它对我有用。 $ mail-&gt;密码='por $ ch3';
答案 6 :(得分:2)
我的解决方法是:
那一切,希望对您有用
答案 7 :(得分:2)
这将解决PHPMailer错误中的“ SMTP错误:无法验证”。
答案 8 :(得分:2)
[解决]。在Wordpress中配置WP-Mail-SMTP
插件时遇到了同样的错误。
即使我进行了三次检查,问题仍然存在。设置和登录凭据,并且能够使用浏览器手动登录。
您可以采取一系列步骤来解决此问题。
Continue
或按照说明操作。答案 9 :(得分:2)
我遇到了同样的问题并完成了所有提示,包括Gmail设置(例如安全性较低的应用访问),没有运气。但最后当我将密码更改为不同的东西时,出于某种原因它才起作用!仅供参考,初始密码没有任何特殊字符。
答案 10 :(得分:2)
如果您在发送电子邮件时仍然遇到错误,请使用相同的错误消息。试试这个:
$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';
就在行前:
$send = $mail->Send();
或在其他意义上,在调用Send()函数之前。
经过测试和工作。
答案 11 :(得分:0)
这是selinux的问题。我刚刚更新了/ etc / selinux / config文件中的以下给定部分
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
// suppose your formula is in B3
CellReference cellReference = new CellReference("B3");
Row row = sheet.getRow(cellReference.getRow());
Cell cell = row.getCell(cellReference.getCol());
CellValue cellValue = evaluator.evaluate(cell);
switch (cellValue.getCellType()) {
case Cell.CELL_TYPE_BOOLEAN:
System.out.println(cellValue.getBooleanValue());
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.println(cellValue.getNumberValue());
break;
case Cell.CELL_TYPE_STRING:
System.out.println(cellValue.getStringValue());
break;
case Cell.CELL_TYPE_BLANK:
break;
case Cell.CELL_TYPE_ERROR:
break;
// CELL_TYPE_FORMULA will never happen
case Cell.CELL_TYPE_FORMULA:
break;
}
(之前是SELINUX =强制执行)。
然后通过给予重新启动系统
重启
现在邮件没有任何麻烦。
构造
SELINUX=permissive
答案 12 :(得分:0)
SMTP错误:无法进行身份验证 我有同样的问题。以下故障排除步骤对我有所帮助。
myaccount.google.com
- &gt; Sign-in & security
- &gt; Apps with account access
,然后将Allow less secure apps
转到ON
(靠近页面底部)。答案 13 :(得分:0)
您的代码没有问题。
按照以下两个简单步骤从phpmailer发送电子邮件。
如果您已启用,则必须停用Google帐户的两步验证设置。
启用开启允许访问不太安全的应用。
答案 14 :(得分:0)
另一篇文章解决问题是正确的,但如果启用了两步验证则无法解决该问题。然后,不提供允许安全性较低的应用程序的选项。以下是如何做到的答案:
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.
这应解决问题。
答案 15 :(得分:0)
我遇到了同样的问题,没有运气就做了所有提示。最后,当我将密码更改为其他密码时,由于某种原因它起作用了! (初始密码或新密码没有任何特殊字符)
答案 16 :(得分:0)
我遇到了相同的问题,该问题已按照以下说明进行了修复
测试为要尝试访问的帐户启用“访问较不安全的应用程序”(这仅表示客户端/应用程序未使用OAuth 2.0-https://oauth.net/2/)。在“安全性”选项卡上的帐户设置中,可以找到帐户权限(不适用于启用了两步验证的帐户):https://support.google.com/accounts/answer/6010255?hl=en
答案的原始链接:https://support.google.com/mail/thread/5621336?msgid=6292199
答案 17 :(得分:0)
我在身份验证方面遇到了同样的问题。修复方法是设置两步验证并为设备创建应用程序专用密码(阻止设备的错误消息将显示在您的帐户设置中 - &gt;“通知和警告”如果您的问题与我的相同)< / p>