PHPMailer中的“SMTP错误:无法validation”
我在一个简单的脚本中使用PHPMailer发送电子邮件的通过Gmail,我得到一个“未知的错误”(至less对我来说):
SMTP错误:无法validation。 错误:SMTP错误:无法进行身份validation。
SMTP服务器错误:5.7.1用户名和密码不被接受。 了解更多信息,请访问535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 p38sm2467302ybk.16
我已经阅读了关于configurationOpenSSL的SSL / TLS连接,我做到了。 Apache和PHP是正确configuration的(使用OpenSSL扩展在PHP中运行,在Apache 2.2.16中运行mod_ssl)。
这是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!"; } ?>
用户名和密码是好的,我在雷鸟尝试,没有任何问题。 我也使用SSL身份validation和端口465,得到相同的错误。
试试这个:
$相关 – > 用户名 =“foo@gmail.com”;
我testing了它,它的工作完美,没有其他的改变
我遇到过这个问题。 为了使它工作,我不得不去myaccount.google.com – >“login和安全” – >“与帐户访问的应用程序”,并将“允许不太安全的应用程序”为“开”(接近底部这一页)。
这是GMail问题
请阅读Google帮助( https://support.google.com/mail/answer/14257?p=client_login&rd=1 )
- 打开您的networking浏览器并通过http://mail.google.com/maillogin到Gmail。; 如果您看到字validation请求,请input扭曲图片中的字母并完成login。
- closures浏览器,然后再次尝试在电子邮件客户端中访问您的消息。
- 如果您仍然遇到问题,请访问http://www.google.com/accounts/DisplayUnlockCaptcha并使用您的Gmail用户名和密码login。; 如有必要,请在扭曲的图片中input字母。
- 点击继续。
- 重新启动您的邮件客户端,然后再次尝试在您的电子邮件客户端中访
我收到了同样的错误,在我的情况下,它是密码。 我的密码有特殊字符,如果您提供密码而不逃避特殊字符,错误将继续显示。 例如$mail->Password = " por$ch3";
是有效的,但不能使用上面的代码。 解决scheme应如下所示: $mail->Password = "por\$ch3";
请注意我在密码中的美元字符之前放置的反斜杠。 这应该工作,如果你有一个使用特殊字符的密码
对我来说,我的密码字段中有一个特殊字符,我把它放在$ mail-> Password =“por $ ch3”中,这个string适用于gmail smpt服务器,但不能用于其他服务器; 所以我只是把双引号改成了单引号而且对我有用。 $ mail-> Password ='por $ ch3';
由于密码中的百分比符号,我收到了这个错误。
如果您在发送电子邮件时仍然遇到错误,则会显示相同的错误消息。 尝试这个:
$mail->SMTPSecure = 'tls'; $mail->Host = 'smtp.gmail.com';
就在行前:
$send = $mail->Send();
或者在其他方面,在调用Send()函数之前。
testing和工作。
我有同样的问题,并做了所有的提示,包括Gmail设置(如不太安全的应用程序访问),没有运气。 但最后,当我把密码更改为不同的东西,出于某种原因,它的工作! 仅供参考,初始密码没有任何特殊字符。
[解决了]。 在Wordpress中configurationWP-Mail-SMTP
插件时遇到同样的错误。
即使我已经“三重检查”了设置和login凭据,并且能够使用浏览器手动login,问题仍将持续存在。
有一系列的步骤可以解决这个问题。
- 为要使用的Gmail帐户创build一个新密码
- 在Google安全设置中启用安全性较低的应用
- 使用
Display Unlock Captcha
页面为您的应用程序或网站授予loginGmail的权限。 点击Continue
或按照说明。 - 使用应用程序或网站login。 我的smtp设置是1)SMTP主机:smtp.gmail.com 2)SMTP端口:587 3)encryption:TLS 4)authentication:SMTPauthentication5)用户名:example@gmail.com 6)密码:examplesecret
我有与身份validation相同的问题。 解决方法是设置两步validation并为设备创build应用程序特定的密码(如果问题与我的问题相同,则阻止设备的错误消息将显示在您的帐户设置 – >“通知和警报”中)
这是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]