CodeIgniter(CI3)Email库类stream_socket_enable_crypto()报错: SSL operation failed with code.

打开开发环境,调试出错信息如下:

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Warning</p>
<p>Message:  stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed</p>
<p>Filename: libraries/Email.php</p>
<p>Line Number: 1975</p>
</div>

开发过程中,使用一个计划任务(每6小时调用一次),实现每月1日00:00-06:00发送一份邮件报表,调用API生成报表,并发送emai。测试人员在当前时间调用API没有发现BUG,为了测试每月1日00:00-06:00的计划任务,她将服务器时间调至7月1日,8月1日,发现8月1日时计划任务被调用,但返回发送邮件失败信息。

经过一番测试,发现修改服务器时间至明天、后天....7月5日....8月1日,7月5日之前API调用成功,7月5日之后调用API失败。后来主管建议在8月1日时,使用一个提供的测试邮件发送的功能,发现8月1日发送邮件失败。

再后来,主管建议打开开发环境,查看出错信息。发现了开头的那段信息。

打开libraries/Email.php,发现出错位置代码如下:

可以发现,当配置emial的smtp_crypto为TLS时,都会执行stream_socket_enable_crypt( )这个函数,并且使用

STREAM_CRYPTO_METHOD_TLS_CLIENT加密方式。

到网上搜索关键字 OpenSSL Error messages: error:14090086,发现一片介绍“Composer 出现error:14090086的解决方案”。

具体可参考https://blog.csdn.net/w670328683/article/details/53442087

从文中可知,出现该错误的原因是,没有安装最新的curl证书的问题。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值