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

Php 使用SMTP Gmail Codeigniter发送电子邮件在本地工作,但在主机上出现错误,php,smtp,gmail,codeigniter-3,shared-hosting,Php,Smtp,Gmail,Codeigniter 3,Shared Hosting,我正在使用Codeigniter中的email类发送邮件抛出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 correc

我正在使用Codeigniter中的email类发送邮件抛出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)上尝试了这段代码,它给了我同样的警告和错误


有人知道我哪里出错了吗?

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

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

非SSL-80、3535、25

SSL-465


您是否已在gmail上启用了
允许不太安全的应用程序
?原因是谷歌需要验证你是否真的允许这种行为,所以我相信配置它会解决你的问题@这不会导致连接超时错误,而是身份验证错误。是的,我有。它正在我的本地主机上工作你应该和GoDaddy核实一下。他们以阻止未通过SMTP中继的传出SMTP连接而闻名,我已将其上载到bluehost网站上,它会给我相同的错误谢谢您的回复,但它将错误号更改为111以下是遇到的错误SMTP错误:111连接被拒绝无法使用PHP SMTP发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。您是否尝试了端口25?我在共享主机上,因此无法查看php.ini文件并对其进行更改:(您可以与提供商联系,要求他们进行更改。