【问题标题】:SSL operation failed with code 1 Codeigniter does not send emailSSL 操作失败,代码为 1 Codeigniter 不发送电子邮件
【发布时间】: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
  • 设置您的 CACert 文件。例如,参见curl_setopt cacert.pem for paypal。或者更好的是,将其设置为所需的一个 CA(而不是 cacert.pem 中的集合)。
  • 我需要什么 CA?你能解释一下吗?

标签: php codeigniter email openssl xampp


【解决方案1】:

这可能对将来的某人有所帮助。

即使每个凭据都正确,计算机中安装的某些防病毒软件或防火墙也可能会阻止通过 SMTP 发送电子邮件。暂时禁用防病毒软件或防火墙进行检查是个好主意。

就我而言,Avast 防病毒软件导致了这个问题,禁用它解决了我的问题。

要禁用 Avast 拦截 SMTP,取消选中 Scan outbound emails (SMTP) 复选框即可。

【讨论】:

    猜你喜欢
    • 2016-01-23
    • 1970-01-01
    • 2015-04-27
    • 2013-08-25
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    相关资源
    最近更新 更多