关于CI的email类配置gmail的小问题
本帖最后由 恶魔的果实 于 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() .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:Oh~~~successful!
附上原文链接: http://expressionengine.com/forums/viewthread/169641/
第一次在论坛发帖子,不好的地方请见谅! http://cier.phpfogapp.com/index.php/docs/app/email :o厉害 大道达人 发表于 2012-10-17 12:30 static/image/common/back.gif
http://cier.phpfogapp.com/index.php/docs/app/email
:o厉害!不过网站很慢 分享就是一种美德! 浪迹天涯 发表于 2012-10-17 16:05 static/image/common/back.gif
分享就是一种美德!
开源始于分享,一起共勉 我的问题一样.本机用的xampp集成环境 \php.ini 没有extension=php_openssl.dll
怎么搞:L 成功了:$ 我没用到错误解决方法,
依娇赏月 发表于 2013-4-21 23:18 static/image/common/back.gif
成功了 我没用到错误解决方法,
:lol 恭喜恭喜
CIemail 使用
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的为您服务,
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 服务。
页:
[1]
2