您的位置:首页 > 编程语言 > PHP开发

cakephp中用内置邮件组件发送Gmail邮件

2013-10-05 23:01 183 查看
这几天在家用cakephp框架写东西,然后项目里需要用到发送邮件的功能,看了下cakephp2.x的参考手册里没有找到整合phpmailer的,但是因为cakephp本身也是内置了email组件的,所以暂时一个小项目,用内置的email组件来发送邮件也没有什么问题的,下面简单记录一下过程,以及其中可能遇到的问题,仅供参考,如果按照该教程使用了之后还是不行,那么我建议你继续看cakephp的手册。。。

我们这里总结的跟手册上略有出入,但其实差别不是特别大,就是个先后顺序,以及,你当前的环境是开发还是生产。

首先,你得在app/Config/目录下,新建一个email.php,只需要拷贝一下email.php.default,然后更改一下文件名即可。

然后在email.php文件中,添加一个gmail的数组,代码如下:

public $gmail = array(
'transport' => 'Smtp',
'from' => array('用户名@gmail.com' => 'My Site'),
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'timeout' => 30,
'username' => '用户名@gmail.com',
'password' => '密码',
'client' => null,
'log' => true,
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
);

这样儿,我们就配置好了我们的gmail邮箱的各个选项,需要注意的是,gmail要求ssl,所以一定确保你的php编译了openssl模块,如果是在win下的话,基本上只需要你在php.ini文件中,找到extension=php_openssl.dll这一行,去掉前面的分号,取消注释即可。

接下来,在app/Controller/你的controlle.php文件中,加入如下的一个发送邮件的方法,这里我们简单的测试一个即可:

public function send_email()
{
App::uses('CakeEmail','Network/Email');
$Email = new CakeEmail('gmail');
$Email->from(array('发件人邮箱地址' => '邮件发送人'))
->to('收件人邮箱地址')
->subject('邮件主题')
->send('邮件内容');
}

然后,在app/View/你的View下创建一个send_email.ctp,随便写点儿啥,echo一个'您的邮件已经发送了',因为本身这个也是打算写在后台发送的。

接下来我们在浏览器里输入localhost/网站名/Users/send_email,然后敲击回车,单封邮件的发送速度还是不错的,具体取决于网速,大家可以去试验一下,欢迎交流。

2013年10月5日,Eirc.Tang 记
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cakephp gmail