用户
 找回密码
 入住 CI 中国社区
搜索
查看: 9793|回复: 15
收起左侧

关于CI的email类配置gmail的小问题

[复制链接]
发表于 2012-10-17 12:09:07 | 显示全部楼层 |阅读模式
本帖最后由 恶魔的果实 于 2012-10-17 12:10 编辑

作为初学者,看CI的手册,然后自己动手写写小例子。今天考到email类时候,动手出现错误,安州手册上配置参数:
function send_email()
  {
          $this->load->library('email');

          $config['protocol'] = 'smtp';
          $config['smtp_host'] = 'smtp.gmail.com';
          $config['smtp_user'] = 'my@gmail.com';
          $config['smtp_pass'] = 'mypass';
          $config['smtp_port'] = 465;
        $config['charset'] = 'utf-8';
        $config['smtp_timeout'] = 5;
        $config['mailtype'] = 'text';
        $config['wordwrap'] = TRUE;

    $this->email->initialize($config);
         
          $this->email->from('my@gmail.com', 'myname');
          $this->email->to('your@qq.com');
          $this->email->subject('测试CI email类');
          $this->email->message('测试内容');
         
          $this->email->send();
}
然后执行这个控制器的时候出错。后来google了下,说gmail要用ssl,所以就改为$config['smtp_host'] = 'ssl://smtp.gmail.com';
改完后居然又出现新的错误:Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.googmemail.com:465 (Unable to find the socket transport “ssl” - did you forget to enable it when you configured PHP?)
百思不得其解,又google...
后来终于明白,这不是CI的问题,是我服务器的问题,php配置没开启ssl.....本机用的xampp集成环境,找到C:\Program Files\XAMPP\php\php.ini 把;extension=php_openssl.dll 前面的‘;’去掉,重启apache就可以了。然后执行send email: QQ截图20121017120656.jpg Oh~~~successful!
附上原文链接: http://expressionengine.com/forums/viewthread/169641/
第一次在论坛发帖子,不好的地方请见谅!
发表于 2012-10-17 12:30:35 | 显示全部楼层
 楼主| 发表于 2012-10-17 13:05:13 | 显示全部楼层
厉害
 楼主| 发表于 2012-10-17 13:05:38 | 显示全部楼层
大道达人 发表于 2012-10-17 12:30
http://cier.phpfogapp.com/index.php/docs/app/email

厉害!不过网站很慢
发表于 2012-10-17 16:05:28 | 显示全部楼层
分享就是一种美德!
 楼主| 发表于 2012-10-18 10:55:28 | 显示全部楼层
浪迹天涯 发表于 2012-10-17 16:05
分享就是一种美德!

开源始于分享,一起共勉
发表于 2013-4-21 22:52:08 | 显示全部楼层
我的问题一样.本机用的xampp集成环境 \php.ini 没有extension=php_openssl.dll
怎么搞
发表于 2013-4-21 23:18:30 | 显示全部楼层
成功了 我没用到错误解决方法,
 楼主| 发表于 2013-4-23 14:58:31 | 显示全部楼层
依娇赏月 发表于 2013-4-21 23:18
成功了 我没用到错误解决方法,

恭喜恭喜
发表于 2013-4-24 15:23:55 | 显示全部楼层

CI  email 使用
email 类文件不动


控制器里的方法内容:
   $config['protocol'] = 'smtp';
          $config['smtp_host'] = 'ssl://smtp.gmail.com';
          $config['smtp_user'] 'chinacodeigniter@gmail.com';
          $config['smtp_pass'] = '**********';
          $config['smtp_port'] = 465;
        $config['charset'] = 'utf-8';
        $config['smtp_timeout'] = 30;
        $config['mailtype'] = 'text';
        $config['wordwrap'] = TRUE;
        $config['crlf']="\r\n";  
         $config['newline']="\r\n";
         
        $this->load->library('email');

    $this->email->initialize($config);
         
          $this->email->from('chinacodeigniter@gmail.com', '中国共产党');
          $this->email->to('ctv_243028755@qq.com');
          $this->email->subject('明天召开紧急会议');
          $this->email->message('拟定南海问题,人员勿缺!测试,方案!');
         
          $this->email->send();

echo $this->email->print_debugger();



成功效果页面:


220 mx.google.com的ESMTP pa2sm26664377pac.9的 - gsmtp
你好:250 mx.google.com的为您服务,[183.156.30.250]
250-SIZE 35882577
250 8BITMIME
250-AUTH LOGIN平原XOAUTH XOAUTH2
250 ENHANCEDST ATUSCODES
来自:250 2.1.0确定pa2sm26664377pac.9  -  gsmtp
:250 2.1.5 OK pa2sm26664377pac.9  -  gsmtp
数据:354转到领先pa2sm26664377pac.9  -  gsmtp
250 2.0.0确定1366627261 pa2sm26664377pac.9 - gsmtp的
退出:221 2.0.0关闭连接pa2sm26664377pac.9的 -  gsmtp
您的邮件已成功发送使用以下协议:SMTP
用户代理:笨
日期:4月22日(星期一)2013 18:41:02 +0800
来自:= utf-8的问?= E4 = B8 = AD = E5 = 9B = BD = E5 = 85 = B1 = E4 = BA = A7 = E5 = 85 = 9A?
返回路径:
要:ctv_243028755@qq.com
主题:= UTF-8?Q?= E6 = 98 = 8E = E5 = A4 = A9 = E5 = 8F = AC = E5 = BC = 80 = E7 = B4 = A7 = E6 = 80 = A5 = E4 = BC
=?
= UTF-8?Q?= 9A = E8 = AE = AE?
回复:“chinacodeigniter@gmail.com
X-发信人:chinacodeigniter@gmail.com
X梅勒:笨
X-优先级:3(普通)
消息ID:<517513bea3f42@gmail.com>
MIME版本:1.0



片刻查看邮件接收情况!yes




在 Windows 下配置 Apache 的方法,分享出来:

找到 PHP 安装目录下的 libeay32.dll 和 ssleay32.dll,

把它们拷贝到 Apache 安装目录下的 bin 目录里。
和c/windows/ 安装目录下的 libeay32.dll 和 ssleay32.dll,

编辑 PHP 配置文件 php.ini,和c/windows/ php.ini 找到 “;extension=php_openssl.dll” 这行,把前面的分号去掉;如果没有这行,就添加一行 “extension=php_openssl.dll”。



启动 Apache 服务。

本版积分规则