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 ...
 
随机推荐
- js 遍历tree的一个例子(全遍历)
			
全遍历 亲测真是有效. 工作中遇到的问题应该算是比较有价值的问题. <!DOCTYPE html> <html lang="en"> <head> ...
 - 5.SpringMVC
			
1.SpringMVC概述 概述: SpringMVC是基于请求驱动,围绕一个核心Servlet 转发请求到对应的Controller而设计的优点:是一个典型的教科书式的MVC构架,易学易用提供了清晰 ...
 - Angular JS ng-model对<select>标签无效的情况
			
使用场景一: <select ng-if="item.award_type==1" id="award{{$index+1}}" name="X ...
 - error creating bean with name 'defaultvalidator' defined in class path resource
			
场景: 1.直接用eclipse 运行没问题(本地用的tomcat是7.0.70): 2.打包发布到服务器运行也没问题(服务器tomcat是8.5.30): 3.将打包发布的放到本地tomcat(7. ...
 - Web 2.0 浏览器端可靠性测试第1部分(浏览器端可靠性测试的概念和背景)
			
Web 2.0 是一个体现当代网络技术发展趋势的流行概念.它使得基于 Web 的信息交互和用户间协作性更加灵活和丰富.很多的社交网站.博客.wiki,都是 Web 2.0 技术的典型应用. 我们知道, ...
 - git使用笔记-日志
			
1.查看函数的历史修改 git log -L :git_deflate_bound:zlib.c2.查看HEAD的所有记录 git reflog $ git reflog 1a410ef HEAD@{ ...
 - 性能测试工具LoadRunner07-LR之Virtual User Generator 参数化设置
			
1.Select next row[选择下一行]: 顺序(Sequential):按照参数化的数据顺序,一个一个的取 随机(Random):参数化中的数据,每次随机的从中抽取数据 唯一(Unique) ...
 - LoadScene场景异步加载
			
LoadScene场景异步加载 using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; usin ...
 - [转]asp.net URL中包含中文参数造成乱码的解决方法
			
本文转自:http://www.jb51.net/article/22437.htm 问题: 前段时间,在系统中做了一个类似于友情链接的功能块,一直运行良好,直到有一天加了类似于以下的链接地址:htt ...
 - DEDE利用Ajax实现调用当前登录会员的信息简要说明
			
其实这个功能在dede默认的模板上就有,只能算是在原有的功能上进行改造而已. 1.首先需要加载一个ajax的js文件进来 <script language="javascript&qu ...