簡體   English   中英

如何解決錯誤:消息:fsockopen():無法連接到 ssl://smtp.gmail.com:465(連接被拒絕)

[英]How to resolve the error: Message: fsockopen(): unable to connect to ssl://smtp.gmail.com:465 (Connection refused)

我正在使用codeigniter我創建了一個 email function 將 email 發送到特定的 email 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 Function:發送

文件:/home/MyDir/public_html/application/controllers/Login.php 行:48 Function:email

文件:/home/MyDir/public_html/index.php 行:315 Function:require_once

使用 Tls 代替 ssl 並將端口號更改為 587 $this->email->initialize($config); $config = array();

     //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);

工作現場

更改自:

$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";

在我的案例中,這種錯誤是由源服務器防火牆阻止 SMTP 連接引起的。

它可以幫助取消阻止/白名單目標 IP 或禁用 SMTP 在 ConfigServerFirewall(如果使用)配置中阻止/白名單用戶:

SMTP_BLOCK = off
SMTP_ALLOWUSER = usernamehere

你忘了加 '

從改變

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

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

或者

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM