提问者:小点点

PHP发送带有SMTP错误的电子邮件:警告:流\u套接字\u启用\u加密():无法加载语言字符串:tls


我会用PHP发送带有SMTP的电子邮件。我使用Gmail SMTP。

我的代码:

<?php

require 'PHPMailer_5.2.0/class.phpmailer.php';

$mail = new PHPMailer;

$mail->IsSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com';                 // Specify main and backup server
$mail->Port = 587;                                    // Set the SMTP port
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'egenthiers.80@gmail.com';                // SMTP username
$mail->Password = 'XXXX';                  // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted

$mail->From = 'egenthiers.80@gmail.com';
$mail->FromName = 'Egen Can';
$mail->AddAddress('egenthiers.63@gmail.com', 'Egen Can');  // Add a recipient

$mail->IsHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <strong>in bold!</strong>';
$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;
   exit;
}

echo 'Message has been sent';
?>

当我运行这个代码时。我得到这个错误:

警告:stream_socket_enable_crypto():代码为1的SSL操作失败。OpenSSL错误消息:错误:14090086:SSL例程:ssl3_get_server_certificate:证书验证失败在C:\xampp\htdocs\xxx\PHPMailer_5.2.0\class.smtp.php行200语言字符串加载失败:tls消息无法发送。Mailer错误:语言字符串加载失败:tls SMTP服务器错误:

我该如何解决这个问题?

我需要你的帮助。


共1个答案

匿名用户

错误1:

require 'PHPMailer_5.2.0/class.phpmailer.php';

您使用的是一个非常非常旧的PHPMailer版本,它有很多漏洞,存在许多安全漏洞。立即升级。

错误2:

OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:
certificate verify failed 

不搜索此错误消息意味着您没有找到解决此确切问题的许多许多答案和留档。

留档广泛涵盖了这一点。很有可能您的服务器的CA证书捆绑包已经过时(尤其是考虑到您使用的是如此旧版本的PHPMailer,并且您的代码基于一个非常旧的示例)。