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

本文描述了在PHP环境中遇到的邮件发送失败问题,特别是在使用TLS加密时,遇到了OpenSSL错误code1的问题。通过调整服务器时间和测试,确定了问题与服务器日期设置及证书过期有关。最终通过更新curl证书解决了此问题。

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

<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,发现出错位置代码如下:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值