使用codeigniter通过gmail smtp服务器发送电子邮件

时间:2014-08-21 15:49:50

标签: php codeigniter email

我一直在尝试使用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();

非常感谢您的所有帮助

2 个答案:

答案 0 :(得分:1)

我找到了以下内容:

要在CodeIgniter中使用Google SMTP,您需要对Gmail帐户设置进行两(2)次更改:(请注意,攻击者现在更容易侵入您的帐户 - Google) / em>的

  
      
  1. 启用两步验证
  2.   
  3. 允许安全性较低的应用:开启(或启用)
  4.   

现在使用'smtp_host'作为ssl://smtp.gmail.com而不是smtp.googlemail.com

希望这将有助于即将到来的访客。

答案 1 :(得分:0)

使用以下命令在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"

?>