PHPMailer验证对等SSL

时间:2018-10-12 16:16:22

标签: ssl nginx smtp cloudflare

下面的完整代码。如果将 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";
}

1 个答案:

答案 0 :(得分:0)

解决方案是更改自动签名的 SSL 证书以支持 SNI。您必须就此向您的托管服务提供商询问。

问候