使用 codeigniter 通过 gmail smtp 服务器发送电子邮件
Posted
技术标签:
【中文标题】使用 codeigniter 通过 gmail smtp 服务器发送电子邮件【英文标题】:sending email via gmail smtp server with codeigniter 【发布时间】:2014-10-15 08:12:49 【问题描述】:我一直在尝试使用 codeigniter 框架上的 gmail smtp 服务器发送电子邮件。
它在 localhost 上运行完美测试。当我在服务器上测试它时,我得到了这个错误
"遇到 php 错误
严重性:警告
消息:fsockopen() [function.fsockopen]:无法连接到 ssl://smtp.gmail.com:465(连接超时)
文件名:libraries/Email.php
行号:1689"
我的代码是
$ci = get_instance();
$ci->load->library('email');
$config['protocol'] = "smtp";
$config['smtp_host'] = "ssl://smtp.gmail.com";
$config['smtp_port'] = "465";
$config['smtp_user'] = "ticket@gmail.com";
$config['smtp_pass'] = "test123";
$config['charset'] = "utf-8";
$config['mailtype'] = "html";
$config['newline'] = "\r\n";
$ci->email->initialize($config);
$ci->email->from('sender@gmail.com', 'Myanmar Bus Ticket');
$list = array('receiver@gmail.com');
$ci->email->to($list);
$ci->email->reply_to('my-email@gmail.com', 'Explendid Videos');
$ci->email->subject('This is an email test');
$ci->email->message('It is working. Great!');
$ci->email->send();
非常感谢您的所有帮助
【问题讨论】:
检查以确保您的环境变量匹配,例如:如果在生产中,请确保您使用的是生产 email.php 【参考方案1】:我发现了以下内容:
要在 CodeIgniter 中使用 Google SMTP,您需要对您的 Gmail 帐户设置进行 2(两)次更改:(请注意,现在攻击者更容易侵入您的帐户 - Google 说)
启动两步验证。 允许安全性较低的应用:开启(或启用)
现在使用'smtp_host'
作为ssl://smtp.gmail.com
而不是smtp.googlemail.com
希望这对即将到来的访客有所帮助。
【讨论】:
尝试改变你的答案,而不是从你的 2 个答案中剪切和粘贴相同的答案,而不考虑 OP 细节 我是新来的。试图贡献我的经验。我会记住你的建议。【参考方案2】:在 application/config/email.php 中创建一个文件,内容如下:
<?php
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.gmail.com'; //examples: ssl://smtp.googlemail.com, myhost.com
$config['smtp_user'] = 'user@gmail.com';
$config['smtp_pass'] = 'password';
$config['smtp_port'] = '465';
$config['charset']='utf-8'; // Default should be utf-8 (this should be a text field)
$config['newline']="\r\n"; //"\r\n" or "\n" or "\r". DEFAULT should be "\r\n"
$config['crlf'] = "\r\n"; //"\r\n" or "\n" or "\r" DEFAULT should be "\r\n"
?>
【讨论】:
以上是关于使用 codeigniter 通过 gmail smtp 服务器发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
使用gmail,codeigniter,wamp localhost发送邮件
使用 Gmail 在 codeigniter 中通过电子邮件类发送电子邮件
Gmail API 是不是支持没有 SMTP 的 Codeigniter?
无法使用 codeIgniter 从 gmail smtp 服务器发送电子邮件?