使用SMTP发送电子邮件Gmail Codeigniter在本地工作,但在主机上出错

时间:2017-08-02 13:06:52

标签: php smtp gmail codeigniter-3 shared-hosting

我在Codeigniter中使用电子邮件类发送电子邮件扔Gmail smtp 这是我的设置:

$this->load->library('email');
$config['protocol'] = 'smtp';
$config['wordwrap'] = TRUE;
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_user'] = 'email@gmail.com';   // I write my correct email here
$config['smtp_pass'] = 'xxxxxxxxx';         // I write my correct password here
$config['smtp_port'] = 587;
$config['smtp_crypto'] = "tls";
$config['charset'] = "utf-8";
$config['mailtype'] = "html";
$config['newline'] = "\r\n";

$this->email->initialize($config);

$this->email->from('email@gmail.com', 'My Name');
$this->email->to('another_mail@server.com'); // I write onther email here
$this->email->subject('test gmail smtp');
$this->email->message('success :)');
if (!$this->email->send()) {
    echo $this->email->print_debugger();
}

我在我的本地机器上尝试过,代码工作正常,所有电子邮件都已收到。 在我将脚本上传到GoDaddy主机后,它给了我这个警告: -

  

fsockopen():无法连接到smtp.gmail.com:587   (连接超时)

并通过电子邮件print_debugger();打印此错误: -

  

遇到以下SMTP错误:110连接超时   无法使用PHP SMTP发送电子邮件。您的服务器可能不是   配置为使用此方法发送邮件。

我在另一台主机上试过这段代码(Bluehost)它给了我同样的警告和错误。

任何人都知道我哪里出错了?

2 个答案:

答案 0 :(得分:1)

端口587被go daddy阻止用于传出smtp连接,根据指定的要求使用以下端口之一。

非SSL - 80,3535,25

SSL - 465

https://www.godaddy.com/help/what-do-i-do-if-i-have-trouble-connecting-to-my-email-account-319

答案 1 :(得分:0)

检查生产服务器上的php.ini文件。 如果php.ini中有;extension=php_openssl.dll,请将其更改为extension=php_openssl.dll(删除昏迷,然后重启apache或nginx)。