我有两个环境。一台PC和一台笔记本电脑。 我在PC上开发了应用程序,发送电子邮件功能正常,但在笔记本电脑上它会抛出一个fsockopen()错误。
消息:fsockopen():SSL操作失败,代码为1. OpenSSL错误消息:错误:14090086:SSL例程:ssl3_get_server_certificate:证书验证失败
我的代码:
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.gmail.com',
'smtp_port' => 465,
'smtp_user' => 'email@gmail.com',
'smtp_pass' => 'password',
'mailtype' => 'html',
'charset' => 'utf-8'
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$this->email->from('email@gmail.com', 'email');
$this->email->to($a);
$this->email->subject($b);
$this->email->message($c);
$this->email->send();
我认为XAMPP版本是相同的,我检查了php.ini文件,并且扩展名= php_openssl.dll已取消注释。
我做错了什么?
答案 0 :(得分:1)
您需要在openssl.cafile
中设置php.ini
。
我刚刚下载了XAMPP并进行了检查,似乎它位于/xampp/perl/vendor/lib/Mozilla/CA/cacert.pem
。
您的php.ini需要包含openssl.cafile = C:\path\to\xampp\perl\vendor\lib\Mozilla\CA\cacert.pem