Codeigniter显示了GMail的OpenSSL错误

时间:2016-01-02 16:52:54

标签: php codeigniter email smtp xampp

我有两个环境。一台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已取消注释。

我做错了什么?

1 个答案:

答案 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

等行