SSL操作失败,代码为1 Codeigniter无法发送电子邮件。

5

遇到了 PHP 错误

严重性: 警告

消息: stream_socket_enable_crypto(): SSL 操作失败,错误代码为 1。OpenSSL 错误消息: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

文件名: libraries/Email.php

行号: 1978

由于此错误,Codeigniter 无法发送电子邮件。

我的电子邮件代码:

$config = Array(
        'protocol'  => 'smtp',
        'smtp_host' => 'smtp.gmail.com',
        'smtp_port' => 587,
        'smtp_crypto' => 'tls',
        'smtp_user' => 'asd@gmail.com',
        'smtp_pass' => 'asd',
        'mailtype'  => 'html',
        'charset'   => 'utf-8'
    );

    $this->load->library('email', $config);
    $this->email->set_newline("\r\n");

    $this->email->from('asd@gmail.com', 'asd');
    $this->email->to($asd);

    $this->email->subject($asd);
    $this->email->message($asd);

    $this->email->send();

您的端口设置为TSL。请将其更改为465并删除smtp_crypto行。 - Ilanus
它给了我 fwrite() 错误:发送 6 字节失败,错误代码为 errno=10054。远程主机强制关闭了一个现有的连接。如果我使用 ssl://smtp.gmail.com,则会给我 fsockopen() 错误:SSL 操作失败,错误代码为 1。OpenSSL 错误消息:错误:14090086:SSL 例程:ssl3_get_server_certificate:证书验证失败。 - V. Mark
@IlanHasanov - GmailеҸӘжҺҘеҸ—TLSпјӣиҜ·еҸӮйҳ…GoogleзҺ°еңЁе§Ӣз»ҲдҪҝз”ЁTLS / SSLиҝӣиЎҢGmailиҝһжҺҘгҖӮиҝҳиҜ·еҸӮйҳ…з«ҜеҸЈ465е’Ң587д№Ӣй—ҙжңүд»Җд№ҲеҢәеҲ«пјҹгҖӮ - jww
设置你的CACert文件。例如,参考curl_setopt cacert.pem for paypal。或者更好的做法是,将其设置为所需的一个CA(而不是***cacert.pem***中的集合)。 - jww
我在使用CI Email库时遇到了相同的错误。 我没有更改过代码。它在过去几个月中一直运行良好,但在最近两天开始显示这些错误。 我们也没有对服务器进行任何更改。 - Jayesh Dhudashia
显示剩余2条评论
1个回答

2
这可能会对未来有所帮助。 即使每个凭据都正确,计算机中安装的某些杀毒软件或防火墙可能会阻止通过SMTP发送电子邮件。暂时禁用杀毒软件或防火墙以进行检查是一个好主意。
在我的情况下,Avast杀毒软件导致了这个问题,禁用它解决了我的问题。
要禁用Avast拦截SMTP,请取消选中扫描出站电子邮件(SMTP)复选框即可。 禁用Avast SMTP拦截

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接