PHPMailer SMTP本地主机,证书错误

PHPMailer SMTP本地主机,证书错误,php,email,ssl,certificate,phpmailer,Php,Email,Ssl,Certificate,Phpmailer,我们使用PHPMailer。服务器配置为使用本地SMTP。 所以,普梅勒将军的突击队是这样的: $mail = new PHPMailer(); $mail->From = 'info@localdomain.com'; $mail->Host = 'localhost'; $mail->IsSMTP(); ... 由于PHP5.6,这不再有效,因为证书不匹配。我们得到以下错误: 警告:流\u套接字\u启用\u加密():对等证书 CN='*.thisvps.com'与/ho…

我们使用PHPMailer。服务器配置为使用本地SMTP。 所以,普梅勒将军的突击队是这样的:

$mail = new PHPMailer();
$mail->From = 'info@localdomain.com';
$mail->Host = 'localhost';
$mail->IsSMTP();
...
由于PHP5.6,这不再有效,因为证书不匹配。我们得到以下错误:

警告:流\u套接字\u启用\u加密():对等证书 CN='*.thisvps.com'与/ho…PHPMailer_latest/class.smtp.php中预期的CN='localhost'不匹配

我可以使用以下方法抑制此错误:

$this->smtpConnect([
   'ssl' => [
       'verify_peer' => false,
       'verify_peer_name' => false,
       'allow_self_signed' => true
   ]
]);
但是,这是正确的方法吗?我不太喜欢抑制错误;)。 或者我们的配置有错误

版本信息: PHP 5.6.30, PHPMailer:5.2.21


欢迎任何建议,提前谢谢

奇怪的是,如果您没有配置该证书,那么您会从服务器获得该证书。这可能是由于您的ISP重定向了您的流量,尽管我不认为这会影响本地主机

您可以使用
$mail->SMTPSecure=false完全关闭加密(对本地主机来说是安全的,因为没有外部网络流量),但您可能还需要设置
$mail->SMTPAutoTLS=false
以防止在服务器播发
STARTTLS
时自动重新启用

或者,此主机可能在
thisvps.com
域中有一个主机名,您可以使用该主机名,然后该主机名将与证书匹配。

对于主机名(x.thisvps.nl),我已为SMTP连接安装了证书,因为在此之前,错误是根本没有安装证书。查看PHPmailer的调试信息,它似乎是与x.thisvps.nl的连接(可以通过将localhost转换为主机名或其他方式实现)。但是没有运气。。谢谢你的回答!我将暂时禁用SMTP安全,因为它已被保存。