使用 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 服务器发送电子邮件?

gmail smtp 在我使用 codeigniter 框架的主机中不起作用

CodeIgniter 上的 SMTP 显示成功,但电子邮件未发送到 Gmail 帐户