PHPMailer 验证对等 SSL
PHPMailer verify peer SSL
完整代码如下。如果我将 verify_peer 更改为 true 它将 return 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";
}
解决方案是更改自动签名的 SSL 证书以支持 SNI。您必须向您的托管服务提供商询问。
此致
完整代码如下。如果我将 verify_peer 更改为 true 它将 return 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";
}
解决方案是更改自动签名的 SSL 证书以支持 SNI。您必须向您的托管服务提供商询问。
此致