PHP Mailer“;警告:流“U套接字”启用“U加密():”;错误
我的PHPMailer仍存在SMTP问题,如下所述: 我已经看了给出的错误,从我所能看出,这是罪魁祸首 警告:stream\u socket\u enable\u crypto():对等证书CN=PHP Mailer“;警告:流“U套接字”启用“U加密():”;错误,php,ssl,phpmailer,Php,Ssl,Phpmailer,我的PHPMailer仍存在SMTP问题,如下所述: 我已经看了给出的错误,从我所能看出,这是罪魁祸首 警告:stream\u socket\u enable\u crypto():对等证书CN=*.mywebhost.com'与第355行/path/to/phpmailer/class.smtp.php中的预期CN=mail.mydomain.com'不匹配 其他想法/信息 我已安装SSL,并已在此处验证其合法性: 这是一个共享的托管环境 这是一个PHP7环境 这是一个子域设置。因此,SSL用
*.mywebhost.com'与第355行/path/to/phpmailer/class.smtp.php中的预期CN=
mail.mydomain.com'不匹配
其他想法/信息
$mail->Host
用于mail.mydomain.com。我不知道这是否相关,但事实就是如此我已经阅读了PHPMailer文档,我不知道为什么仍然会发生这种情况。有效的SSL,没有SMTP。。。。。关于我可以在哪里检查以修复此问题,有什么想法吗?您大概有这一套:
$mail->Host = 'mail.mydomain.com';
但是,当您连接到它时,它实际上连接到您的ISP的邮件主机(可能类似于mail.mywebhost.com
,它提供了*.mywebhost.com
证书),因此您获得的服务器证书上的名称当然不匹配。正确的解决方案是将您的Host
属性更改为使用邮件服务器的真实名称,因为这样证书将匹配,并且不会出现不匹配错误:
$mail->Host = 'mail.mywebhost.com';
(您需要知道确切的名称)。要使它与您自己的证书一起工作,您需要在自己的IP上运行您自己的邮件服务器,这是共享主机上不可能实现的
《疑难解答指南》中还介绍了另一种解决方法,即禁用证书验证(如5.6PHP之前所做的),但您不应该这样做。您知道这失败的原因,因此您应该正确地修复它,而不是简单地抑制错误。除非您有通配符证书,否则
sub.mydomain.com
的证书将不适用于mail.mydomain.com
。从PHP5.6开始,它开始验证证书]该链接非常糟糕,完全不清楚。问题和错误消息中链接到的PHPMailer故障排除指南涵盖了整个问题。啊,这就是我通过谷歌搜索错误消息而不是单击帖子中的链接得到的结果:-D@Synchro:我没有获得SSL操作失败,代码为1。PHPMailer文档中引用的错误。我下一步应该看哪里?我尝试了一下,得到了SMTP错误:无法连接到服务器:没有到主机的路由(113)
。问题可能与在子域上安装了SSL有关,但主域现在没有SSL。我正在努力纠正这一点,但这似乎会导致给定的问题吗?不。SSL只与接收器有关,而不是与客户端有关。该错误表示您的服务器名称错误,或者出站SMTP被阻止。请向您的ISP咨询。经过进一步研究,“esmtpsa”部分似乎表明TLS/SMTP连接成功()。是这样吗?