php的yii框架开发总结8
EMailer是一个简单的封装PHPMailer类。利用这个扩展可以实现发邮件的功能。
下载地址:http://www.yiiframework.com/extension/mailer/
下载解压把mailer文件夹放到protected\extensions下
在config\main.php文件中加入以下几条语句,应用到系统当中:
- 'import'=>array(
- 'application.models.*',
- 'application.components.*',
- 'application.extensions.*',//多加这一句引用
- ),
'components'中加入:
- 'mailer'=>array(
- 'class'=>'application.extensions.mailer.EMailer',
- 'path Views'=>'application.views.email',
- 'pathLayouts'=>'application.views.email.layouts',
- ),
然后我们就能很容易的使用发邮件的功能了:
- public static function sendEmails()
- { $mail=Yii::createComponent('application.extensions.mailer.EMailer');
- $contents=Dailyreport::getReports();
- $message=Dailyreport::getReports();
- $mail->IsSMTP();
- $mail->Host='smtp.163.com';
- $mail->Port=25;
- $mail->SMTPAuth=true;
- //$mail->SMTPSecure = 'ssl';
- $mail->SMTPDebug=true;
- $mail->Username='***@163.com';
- $mail->Password="******";
- $mail->From='***@163.com';
- $mail->FromName='回声';
- $mail->AddReplyTo('***@163.com');
- $models=User::model()->findAll();
- foreach($models as $model)
- {
- if($model->receive_email==1)
- $mail->AddAddress($model->email);
- }
- $mail->CharSet='UTF-8';
- $mail->Subject='日报';
- $mail->Body=$message;
- $mail->IsHTML(true);
- if($message!=null && $mail->Send())
- {
- echo "发送成功";
- return true;
- }
- else return false;
- }
代码很简单明了,我们可以在一个页面中调用该方法,加载页面就可以实现发邮件的功能了。
但是,经常会遇到不能连接到邮箱服务的问题,我查了很多资料,基本上是下面的原因:
把extensions\mailer\phpmailer\class.phpmailer.php文件中的小写'smtp'改成大写:
- public function IsSMTP() {
- $this->Mailer = 'SMTP';//第一处
- }
- switch($this->Mailer) {
case 'sendmail':
return $this->SendmailSend($header, $body);
case 'SMTP'://第二处
return $this->SmtpSend($header, $body);
case 'mail':
default:
return $this->MailSend($header, $body);
}
把php.ini文件中的:
extension=php_openssl.dll
extension=php_sockets.dll
这两句去掉注释,即去掉前面的分号';'。
我写了一个简单的view视图文件:
- <div class="span-19">
- <div id="content">
- <?php echo '开启定时服务'; ?>
- </div><!-- content -->
- </div>
- <?php
- DailyreportController::sendEmails();
- ?>
只要打开该页面就实现了发邮件的功能:
暂时写到这里,自动发邮件功能怎么实现呢,下节再讲。
php的yii框架开发总结8的更多相关文章
- YII框架开发一个项目的通用目录结构
YII框架开发一个项目的通用目录结构: 3 testdrive/ 4 index.php Web 应用入口脚本文件 5 assets/ 包含公开的资源文件 6 css/ 包含 CSS 文件 7 ima ...
- PHP Yii框架开发——组织架构网站重构
最近一段时间在维护公司的组织架构网站(Org),旧版网站只是用了xampp简单搭建了一套环境部署在了windows机器上,代码结构相对简单. 整个架构如下: 整个架构没有用到复杂的结构,class里放 ...
- php的yii框架开发总结1
最近用php的yii框架写了一个小的demo,虽然不复杂,但是也学习了很多东西,现在总结一下. 项目需求:为几个教研室写一个日报系统,每个人每天写日报,并且系统有自动实现发邮件功能. 额外要求:1.人 ...
- php的yii框架开发总结2
开发流程:1.用yii创建网站目录,当时用命令行创建时遇到了问题,试了很久才找到原因:我的原因是在yii/framework/yiic.bat这个文件中的一条语句: if "%PHP_COM ...
- php的yii框架开发总结9
这一篇讲解怎么实现的自动发邮件的功能,我在网上查了很多资料,很多都是用定时检测来实现的,我试过,效率太低,网站也卡了. 后来就写了一个.bat文件来实现刷新页面,用了windows的定时任务定时来运行 ...
- php的yii框架开发总结10
1.CActiveForm是Chtml类的封装,但是它有数据验证的功能,有三种方式:服务器端.客户端.Ajax数据验证. 服务器端验证:当整个表单页面被提交后,在服务器端 进行验证.如果存在任何验证错 ...
- php的yii框架开发总结7
protected\config\main.php是整个网站中很重要的一个文件,引用文件,连接数据库,默认页面等都是在这里设置: 'import'=>array( 'application.mo ...
- php的yii框架开发总结6
MVC中的Controller部分,所有的controller类都是继承自Controller基类,基类里面包含actionAdmin-管理员,actionIndex-一般默认显示,actionVie ...
- php的yii框架开发总结5
MVC架构之model类: 我的日报系统用到的数据表:tbl_dailyreport表 其中anthor_id是外键,对应tbl_user数据表的主键id,下面是tbl_user表 class Dai ...
随机推荐
- Windows自动化---模拟鼠标键盘
1.PyUserInput(不推荐) python2可以使用PyUserInput库:(不推荐) 支持最基础的鼠标,键盘操作,可以剪贴. 安装的时候:pip install PyUserInput 需 ...
- poi+properties文件实现多环境测试数据一键切换
在项目的接口测试过程中,之前的测试数据都是测试环境下的,长期在测试环境下运行. 目前希望通过很小的代价切换到线上环境运行. 考虑之下,决定使用poi包加上property文件来实现线上线下的数据切换. ...
- 复习一知识点:回调函数callback
比如我们常用的异步请求: $.ajax({ url:"test.json", type: "GET", data: {username:$("#use ...
- hdu3483 A Very Simple Problem 非线性递推方程2 矩阵快速幂
题目传送门 题目描述:给出n,x,mod.求s[n]. s[n]=s[n-1]+(x^n)*(n^x)%mod; 思路:这道题是hdu5950的进阶版.大家可以看这篇博客hdu5950题解. 由于n很 ...
- pandas关于其他merge用法(df1的的列索引和df2的行索引对应时候的)
- Photoshop入门教程(三):图层
学习心得:图层可以说是Photoshop的核心,看似简单,但是对于图像的各种编辑都是基于图层.他就像一层透明的.没有厚度的玻璃纸,每张玻璃纸设置不同的效果,层层叠加,最后显现出绚烂的效果. 在进行图像 ...
- jsonp跨域请求及本质
在html页面中,能实现跨域请求的是 第一: <script src="http://localhost:59602/JsonpTest.ashx?callBack=callBack& ...
- daterangepicker-双日历
js脚本和css样式,到bootstrap官网去下载 <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml&qu ...
- my26_Slave failed to initialize relay log info structure from the repository
重启了一下从库,忘记先stop slave ,直接mysqladmin shutdown关闭实例,结果起不来了 mysql> start slave;ERROR 1872 (HY000): Sl ...
- Robot Framework自动化测试(一)
=============所需要环境========== Python: https://www.python.org/ RF框架是基于python 的,所以一定要有python环境. Robot f ...