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的更多相关文章

  1. YII框架开发一个项目的通用目录结构

    YII框架开发一个项目的通用目录结构: 3 testdrive/ 4 index.php Web 应用入口脚本文件 5 assets/ 包含公开的资源文件 6 css/ 包含 CSS 文件 7 ima ...

  2. PHP Yii框架开发——组织架构网站重构

    最近一段时间在维护公司的组织架构网站(Org),旧版网站只是用了xampp简单搭建了一套环境部署在了windows机器上,代码结构相对简单. 整个架构如下: 整个架构没有用到复杂的结构,class里放 ...

  3. php的yii框架开发总结1

    最近用php的yii框架写了一个小的demo,虽然不复杂,但是也学习了很多东西,现在总结一下. 项目需求:为几个教研室写一个日报系统,每个人每天写日报,并且系统有自动实现发邮件功能. 额外要求:1.人 ...

  4. php的yii框架开发总结2

    开发流程:1.用yii创建网站目录,当时用命令行创建时遇到了问题,试了很久才找到原因:我的原因是在yii/framework/yiic.bat这个文件中的一条语句: if "%PHP_COM ...

  5. php的yii框架开发总结9

    这一篇讲解怎么实现的自动发邮件的功能,我在网上查了很多资料,很多都是用定时检测来实现的,我试过,效率太低,网站也卡了. 后来就写了一个.bat文件来实现刷新页面,用了windows的定时任务定时来运行 ...

  6. php的yii框架开发总结10

    1.CActiveForm是Chtml类的封装,但是它有数据验证的功能,有三种方式:服务器端.客户端.Ajax数据验证. 服务器端验证:当整个表单页面被提交后,在服务器端 进行验证.如果存在任何验证错 ...

  7. php的yii框架开发总结7

    protected\config\main.php是整个网站中很重要的一个文件,引用文件,连接数据库,默认页面等都是在这里设置: 'import'=>array( 'application.mo ...

  8. php的yii框架开发总结6

    MVC中的Controller部分,所有的controller类都是继承自Controller基类,基类里面包含actionAdmin-管理员,actionIndex-一般默认显示,actionVie ...

  9. php的yii框架开发总结5

    MVC架构之model类: 我的日报系统用到的数据表:tbl_dailyreport表 其中anthor_id是外键,对应tbl_user数据表的主键id,下面是tbl_user表 class Dai ...

随机推荐

  1. Qt 学习之路 2(1):序

    https://www.devbean.net/category/qt-study-road-2/page/10 原来开过QT学习之路1, 很棒, 再翻阅时已经没有了. 所以这次把看过的记录下来 Ho ...

  2. C语言使用指针表示数组的注意事项

    1)数组名是指针常量 如对指针变量可以进行++运算,但是对数组名却不允许,另外,对数组名的赋值运算也是错误的 2)注意指针变量的当前值 指针变量的值在程序运行过程中可能经常改变,要对此注意 3)数组越 ...

  3. maven 打包 包含xml

    <build> <finalName>dc-exam</finalName> <!-- 包含xml文件 --> <resources> &l ...

  4. php内置web server

    今天刚开始正式学习PHP(之前有一点了解),推荐学习的网站是w3school.一开始不知道tomcat服务器不支持PHP脚本,直接把.php文件放到tomcat里面去运行,结果嵌入的php代码段没有什 ...

  5. linux学习3(vim)

    一.文档编辑 1. vi和vim命令 Vim的打开文件的方式(4种,要求掌握的就前三种): 1. vim 文件路径                                            ...

  6. 单点登录-JWT(Json Web Tokens)

    来自:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html 1.跨域认证 1.用户向服务器发送用户名和密码. 2.服务 ...

  7. 转 windows下安装pycharm并连接Linux的python环境 以及 windows 下notepad ++编辑 linux 的文件

    ######sample 1:windows下安装pycharm并连接Linux的python环境 https://www.cnblogs.com/junxun/p/8287998.html wind ...

  8. leetcode 892. 三维形体的表面积

    题目描述: 在 N * N 的网格上,我们放置一些 1 * 1 * 1  的立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 返回最终形体的表面积. ...

  9. ie中html页面无法加载css

    今天写代码发生一个很尴尬的问题,码了一天的代码在ie下一调试居然没有样式,打开F12查看元素果然没有样式,在其他浏览器完全没问题,ie就出事. ie肯定没问题,问题还是处在代码上了,百度了一下说是把& ...

  10. Unity 组件.name

    组件.name  指的是组件所在游戏对象的名字,例如: Animation m_animation; m_animation =GetComponent<Animation>(); m_a ...