我的PHPMailer存在持续的SMTP问题,如下所述:https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting#php-56-certificate-verification-failure
我已经看过给出的错误,据我所知,这是罪魁祸首
警告:stream_socket_enable_crypto():对等证书CN =
*.mywebhost.com' did not match expected CN=
mail.mydomain.com'在第355行的/path/to/phpmailer/class.smtp.php中
其他想法/信息。
$mail->Host
为 mail.mydomain.com 。我不知道这是否相关,但这是什么。我已经通过了PHPMailer文档,但我不知道为什么还会发生这种情况。有效的SSL,没有SMTP .....我有什么想法可以检查解决这个问题吗?
答案 0 :(得分:0)
你可能有这套:
$mail->Host = 'mail.mydomain.com';
但是当你连接到它时,它实际上连接到你的ISP的邮件主机(可能是mail.mywebhost.com
,它提供*.mywebhost.com
证书),当然,服务器证书上的名称你有没有匹配。对此的正确解决方案是更改您的Host
属性以使用邮件服务器的真实名称,因为证书将匹配,并且您将不会出现不匹配错误:
$mail->Host = 'mail.mywebhost.com';
(你需要找出确切名称应该是什么)。为了使用您自己的证书,您需要在自己的IP上运行自己的邮件服务器,这是您不可能在共享主机上获得的。
故障排除指南中还描述了另一种解决方法,即禁用证书验证(如5.6之前的PHP) - 但您不应该这样做。你知道为什么会失败,所以你应该正确修复它,而不是简单地抑制错误。