Gmail smtp在phpmailer中不工作

Gmail smtp在phpmailer中不工作,php,phpmailer,Php,Phpmailer,这是我的密码 require_once("PHPMailer/class.PHPMailer.php"); $mail = new PHPMailer(); /* receiver details and message - start */ $toid = "example@gmail.com"; $toname = "Example"; $msg = "First name : ".$_POST["fname"] . "<br>"; $msg .= "Last name : "

这是我的密码

require_once("PHPMailer/class.PHPMailer.php");
$mail = new PHPMailer();
/* receiver details and message - start */
$toid = "example@gmail.com";
$toname = "Example";

$msg = "First name : ".$_POST["fname"] . "<br>";
$msg .= "Last name : ".$_POST["lname"]. "<br>";;
$msg .= "Email : ".$_POST["email"]. "<br>";;
$msg .= "Mobile : ".$_POST["mobile"]. "<br>";;
$msg .= "Message : ".$_POST["msg"];
$subject = "sample subject";
/* receiver details and message - end */

$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1;  // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;  // authentication enabled
$mail->SMTPKeepAlive = true;  

/* mail smtp configuration - start */
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587; 
$mail->Username = 'test@gmail.com';  
$mail->Password = 'xxxxxx';
/* mail smtp configuration - end */

$mail->From = "test@gmail.com";
$mail->FromName = "from name";


$mail->AddAddress($toid, $toname);

$mail->Subject = $subject;
$mail->Body    = $msg;
$mail->IsHTML(true); 
if($mail->Send()){
echo "success";
}else{
echo "Failure";
}
require_一次(“PHPMailer/class.PHPMailer.php”);
$mail=new PHPMailer();
/*接收器详细信息和消息-开始*/
$toid=”example@gmail.com";
$toname=“示例”;
$msg=“名字:”.$\u POST[“fname”]。“
”; $msg.=“姓氏:”.$\u POST[“lname”]。“
”;; $msg.=“电子邮件:”.$\u POST[“电子邮件”]。“
”;; $msg.=“手机:”.$\u POST[“手机”]。“
”;; $msg.=“消息:”..$\u POST[“msg”]; $subject=“示例主题”; /*接收器详细信息和消息-结束*/ $mail->IsSMTP();//启用SMTP $mail->SMTPDebug=1;//调试:1=错误和消息,2=仅消息 $mail->SMTPAuth=true;//启用身份验证 $mail->SMTPKeepAlive=true; /*邮件smtp配置-启动*/ $mail->SMTPSecure='tls';//GMail需要启用安全传输 $mail->Host='smtp.gmail.com'; $mail->Port=587; $mail->Username=test@gmail.com'; $mail->Password='xxxxxx'; /*邮件smtp配置-结束*/ $mail->From=”test@gmail.com"; $mail->FromName=“FromName”; $mail->AddAddress($toid,$toname); $mail->Subject=$Subject; $mail->Body=$msg; $mail->IsHTML(true); 如果($mail->Send()){ 呼应“成功”; }否则{ 呼应“失败”; }
当运行上述命令时,它抛出

流\u套接字\u启用\u加密():SSL操作失败,代码为1。OpenSSL错误消息:错误:14090086:SSL例程:ssl3_get_server_证书:证书验证在第200行的C:\xampp\htdocs\mail\PHPMailer\class.smtp.php中失败


这与您的代码无关-您的OpenSSL CA证书存储不包含CA证书和/或您的系统运行在伪装gmail服务的环境中,和/或您的时钟非常错误和/或您使用的是非常旧的OpenSSL版本。你没有告诉我们关于这个平台的任何信息,所以我们无法建议如何修复它


顺便说一句,您还需要在谷歌端启用“不安全”连接-我认为PHPmailer不支持oauth over SMTP。

对于GMail,请将设置更改为:

$mail->SMTPSecure = 'ssl';
$mail->Port = 465; 

我不是PHP爱好者,但在C#中,我在尝试通过gmail发送电子邮件时遇到了类似的问题。在我的请求中设置SSL=true后解决。上周出现了一系列类似的问题-我怀疑gmail更改了许多PHP安装中缺少的根证书,因此请尝试更新CA证书,如疑难解答指南和PHP文档所述。这不是问题,但您使用的是非常旧的PHPMailer版本,所以请获取最新版本。我使用最新版本检查时也会抛出相同的错误@synchronous,这就是为什么我说“这不是问题”。修复您的证书,按照指南中的说明操作。PHPMailer支持SMTP XOAUTH2已有几年了。看,但这与验证Gmail的证书无关,这发生在任何身份验证之前很久。我在谷歌端启用了“不安全”连接。。。bt尚未编写。@Renu:您的客户端必须先连接,然后才能进行身份验证。@symcbean:我没有得到它..?它会引发相同的错误,SMTP->错误:无法连接到服务器:(0)SMTP错误:无法连接到SMTP主机。失败。另外,不要发布无法解释的代码作为答案,说出为什么你认为它能解决问题,尽管在这种情况下它不能。