【发布时间】:2018-01-09 17:34:06
【问题描述】:
我在 Codeigniter 中使用电子邮件类发送电子邮件 throw 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)上尝试过这段代码,它给了我同样的警告和错误。
有人知道我哪里出错了吗?
【问题讨论】:
-
你在gmail上启用
allowing less secure app了吗?原因是谷歌需要验证你是否真的允许这种类型的操作,所以我相信配置它会解决你的问题。 - support.google.com/accounts/answer/6010255?hl=en -
@KaoriYui 这不会导致连接超时错误,而是导致身份验证错误。
-
是的,我有。它正在我的本地主机上运行
-
您应该咨询 GoDaddy。他们以阻止不通过其 SMTP 中继的传出 SMTP 连接而闻名,
-
我已将它上传到 bluehost 网站,但它给了我同样的错误
标签: php smtp gmail codeigniter-3 shared-hosting