过去几天通过Gmail发送电子邮件的问题php codeigniter

时间:2017-12-05 09:27:22

标签: php codeigniter email

我有一个正在运行的代码,它通过Codeigniter上的email-> send函数发送电子邮件。 从昨天开始,这段代码就停止了工作。

以下是我正在使用的代码

$config = Array(
        'protocol'  => 'smtp',
        'smtp_host' => 'smtp.gmail.com',
        'smtp_port' =>  465,
        'smtp_user' => 'xxxx@gmail.com',
        'smtp_pass' => 'xxxx',
        'mailtype'  => 'html',
        'charset'   => 'utf-8',
        'smtp_crypto' => "ssl"
    );

    $data = array(
   'userName'=> $firstName,
   'link'=>$url
     );

    $this->load->library('email', $config);
    $this->email->set_newline("\r\n");
    $this->email->set_mailtype("html");
    $this->email->from('finstlerforum@gmail.com', 'Finstler Support');
    $this->email->to($email);
    $this->email->subject('Reset Password requested');
    $body = $this->load->view('email-template/forgotpassword',$data,TRUE);
    $this->email->message($body);
    if (!$this->email->send())
    {
        // show_error($this->email->print_debugger());
        return false;
    }
    else
    {
        return true;
    }

我从昨天起收到以下错误

  

严重性:警告消息:fsockopen():SSL:握手超时   文件名:libraries / Email.php行号:2055

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

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

我在我的机器上启用了openssl,它正确显示为已启用。 任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:0)

尝试使用以下配置:

$config = Array(
    'protocol'  => 'smtp',
    'smtp_host' => 'smtp.gmail.com',
    'smtp_port' =>  587,
    'smtp_user' => 'xxxx@gmail.com',
    'smtp_pass' => 'xxxx',
    'mailtype'  => 'html',
    'charset'   => 'utf-8',
    'smtp_crypto' => "tls"
);