下面的完整代码。如果将 verify_peer 更改为 true ,它将返回SMTP错误:无法连接到服务器:(0)。 但是已经安装了SSL。您可以检查它here 如何解决呢?我不想跳过验证同行。 服务器nginx。 (CLOUDFLARE SSL)
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.mail.ru";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "somemail@mail.ru"; // SMTP account username example
$mail->Password = "somepass"; // SMTP account password example
$mail->SetFrom("somemail@mail.ru");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("somemail2@mail.ru");
$mail->SMTPOptions = array (
'ssl' => array (
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent";
}
答案 0 :(得分:0)
解决方案是更改自动签名的 SSL 证书以支持 SNI。您必须就此向您的托管服务提供商询问。
问候