前言
今天抽空解决了一下,后面是发现PHP5.6开始默认开启了SSL的证书验证,个别情况会导致验证失败的情况,也就导致了无法发送的问题。
先后慢慢排查才排查出来的,因为也在zblog后台进行同样发件配置测试,ZBLOG使用的是PHP7.4版本,可以正常发信。
解决方法
还是简单粗暴的方法,在确认PHP开始基本SSL、socket扩展情况下,直接改phpmailer的源代码SMTPOptions属性配置,设置不验证SSL证书。
打开phpmailer文件夹,找到class.smtp.php文件,在文件内搜索下面关键代码,大概在258行左右。
connect($host, $port = null, $timeout = 30, $options = array())
接下来就是在这个函数下面添加下面的代码,添加位置看清楚。
public function connect($host, $port = null, $timeout = 30, $options = array()) { if (count($options) == 0) { $options['ssl'] = array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true); }
保存修改后,再次测试发件就正常了。
结语
总的来说,重点还是要给phpmailer设置忽略解析SSL证书,这样就可以达到个别程序无法发件的问题。本文参考的解决文章是:点我访问
本文地址:https://www.mainblog.cn/271.html
版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处!
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。
版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处!
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。