【问题标题】:How to resolve the error: Message: fsockopen(): unable to connect to ssl://smtp.gmail.com:465 (Connection refused)如何解决错误:消息:fsockopen():无法连接到 ssl://smtp.gmail.com:465(连接被拒绝)
【发布时间】:2017-01-02 10:32:32
【问题描述】:

我正在使用 codeigniter 我创建了一个电子邮件功能来向特定电子邮件 ID 发送电子邮件

public function email($email){
        $config['protocol'] = 'smtp';
        $config['smtp_host'] = 'ssl://smtp.gmail.com';
        $config['smtp_timeout']=5;
        $config['smtp_port'] = '465';
        $config['smtp_user'] = 'MyEmailID@gmail.com';
        $config['smtp_pass'] = '********************';
        $config['mailtype'] = 'html';
        $config['charset'] = 'utf-8';
        $config['newline'] = "\r\n";
        $config['wordwrap'] = TRUE;
        $this->load->library('email');
        $this->email->initialize($config);

        $this->email->from('MyEmailID@gmail.com', 'MyEmailID');
        $this->email->to($email);
        $this->email->subject('My Subject');
        $this->email->message('My Message');
        return $this->email->send();
    }

这在我的本地机器上运行良好,但是当我将该代码上传到 托管服务器我正在使用 Godaddy 托管)时,我'我收到以下错误:

遇到了 PHP 错误

严重性:警告

消息:fsockopen():无法连接到 ssl://smtp.gmail.com:465 (连接被拒绝)

文件名:libraries/Email.php

行号:2020

回溯:

文件:/home/MyDir/public_html/application/models/BasicModel.php 行:47 功能:发送

文件:/home/MyDir/public_html/application/controllers/Login.php 行:48 功能:电子邮件

文件:/home/MyDir/public_html/index.php 行:315 功能: 需要一次

【问题讨论】:

  • 试试 ssl://smtp.googlemail.com
  • 以上代码适用于我的本地主机,但不适用于我的主机:(
  • 您找到解决方案了吗?同样的问题:/

标签: php codeigniter email ssl


【解决方案1】:

使用 Tls 代替 ssl 并将端口号更改为 587 $this->email->初始化($config); $config = 数组();

     //Load email library 
        $config['protocol']    = 'smtp';
        $config['smtp_host']    = 'tls://smtp.gmail.com';
        $config['smtp_port']    = '587';
        $config['smtp_timeout'] = '7';
        $config['smtp_user']    = 'email';
        $config['smtp_pass']    = 'password';
        $config['charset']    = 'utf-8';
        $config['wordwrap'] = TRUE;
        $config['mailtype'] = 'html';
        $config['validation'] = TRUE; // bool whether to validate email or not      



            $this->email->set_newline("\r\n");
            ;
            $this->email->clear(TRUE);
            $this->email->to($this->input->post('email'));
            $this->email->subject($row_email->email_subject);

working site

【讨论】:

    【解决方案2】:

    更改自:

    $config['smtp_host'] = 'smtp.seuDominio.com';
    

    收件人:

    $config['smtp_host'] = 'mail.seuDominio.com';
    $config['smtp_port'] = 587; //587
    $config['smtp_user'] = 'seu@dominio.com';
    $config['smtp_pass'] = 'suaSenha';
    

    更改自:

    $config['protocol']  = 'smtp'; 
    

    收件人:

    $config['protocol']  = 'mail';
    $config['validate']  = TRUE;
    $config['mailtype']  = 'html';
    $config['charset']   = 'utf-8';
    $config['newline']   = "\r\n";
    

    【讨论】:

      【解决方案3】:

      您忘记添加 '

      改变

       $config['smtp_host'] = 'ssl://smtp.gmail.com';
      

      $config['smtp_host'] = 'smtp.gmail.com';
      

      在 php.ini 中取消注释 php_openssl.dll

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-08
      • 2020-12-31
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 2020-11-03
      相关资源
      最近更新 更多