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

时间:2016-01-03 14:16:53

标签: php codeigniter email openssl xampp

我的项目正在使用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();

我尝试了很多东西,但它没有用。我认为问题在于证书文件。我应该如何设置证书以及如何添加配置文件?请给我一份详细的手册。

1 个答案:

答案 0 :(得分:0)

我这几年回来了

$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();