【发布时间】:2016-04-07 05:00:51
【问题描述】:
遇到了 PHP 错误
严重性:警告
消息:stream_socket_enable_crypto():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14090086:SSL 例程: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 行
-
它给了我 fwrite(): send of 6 bytes failed with errno=10054 现有连接被远程主机强行关闭。错误。如果我使用 ssl://smtp.gmail.com 那么它给了我 fsockopen(): SSL operation failed with code 1. OpenSSL 错误消息:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed error
-
@IlanHasanov - Gmail 仅接受 TLS;见Google Is Now Always Using TLS/SSL for Gmail Connections。另见What is the difference between ports 465 and 587?
-
设置您的 CACert 文件。例如,参见curl_setopt cacert.pem for paypal。或者更好的是,将其设置为所需的一个 CA(而不是
cacert.pem中的集合)。 -
我需要什么 CA?你能解释一下吗?
标签: php codeigniter email openssl xampp