如何在php.ini中设置OpenSSL ca文件?fsockopen()错误


How to set up OpenSSL ca file in php.ini? fsockopen() error

我的项目正在使用Codeigniter和XAMPP。当我开始开发应用程序时,我已经在PC1上使用了Codeigniter的电子邮件库。一切都很顺利,但当我在电子邮件发送功能中将htdocs目录复制到PC2时,显示:

消息:fsockopen():SSL操作失败,代码为1。OpenSSL错误消息:错误:14090086:SSL例程:ssl3_get_server_certificate:证书验证失败

消息:fsockopen():无法启用加密

消息:fsockopen():无法连接到ssl://smtp.gmail.com:465(未知错误)

我觉得我的电子邮件发送功能还可以:

$config = Array(
        'protocol'  => 'smtp',
        'smtp_host' => 'ssl://smtp.gmail.com',
        'smtp_port' => 465,
        '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($c);
    $this->email->subject($a);
    $this->email->message($b);
    $this->email->send();

我试过很多东西,但都没用。我认为问题出在证书文件上。我应该如何设置证书以及如何添加到配置文件中?请给我一份详细的手册。

几年前我就用过

$config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.googlemail.com',
        'smtp_port' => 465,
        'smtp_user' => ' user@gmail.com',
        'smtp_pass' => ' pass',
        'mailtype'  => 'html', 
        'charset'   => 'iso-8859-1'
        );
$this->load->library('email',$config);
$this->email->set_newline("'r'n");
$this->email->from('user@gmail.com', 'User Name');
$this->email->to('to@abc.com');
$this->email->subject('Subject');
$this->email->send();