参考网址:http://shoukii0721.iteye.com/blog/1576225

有很多时候我们需要给用户发送邮件,作留言,或者是激活邮件。等用途。

需要注意的是,设置发送的邮件得有SMTP 协议。

参考网址:http://jingyan.baidu.com/article/0f5fb099dffe7c6d8334ea31.html

百度知道中的,有提示。

这里的host 是普通邮箱之间的发送邮件。需要在qq邮箱中设置下。

再者,若是 企业邮箱的话,'host'=>'smtp.exmail.qq.com',

在yii中有单独封装好的yii-mail 。

1.在main.php中添加

'import'=>array(
'application.extensions.yii-mail.*',
), 'components'=>array(
'mail'=>array(
'class' => 'application.extensions.yii-mail.YiiMail',
'viewPath' => 'application.views.mail',
'logging' => true,
'dryRun' => false,
'transportType'=>'smtp', // case sensitive!
'transportOptions'=>array(
'host'=>'smtp.qq.com', // smtp服务器
'username'=>'*******' // 验证用户
'password'=>'*******', // 验证密码
'port'=>'25', // 端口号
//'encryption'=>'ssl',
),
),
),

2.在 extentsions文件夹下,将yii-mail 文件包 复制下边。

3.Model: MailForm.php

<?php
class MailForm extends CFormModel { public $from;
public $to;
public $subject;
public $body; public function rules() {
return array(
array('from, to, subject, body', 'required'),
array('from, to, subject, body ','safe'),
);
} public function attributeLabels() {
return array(
'from' => '送信人',
'to' => '收信人',
'subject' => '标题',
'body' => '邮件内容',
);
}
} ?>

4 View: index.php

<?php
$this->pageTitle=Yii::app()->name . ' - 送信';
$this->breadcrumbs=array('送信',);
?> <h1>邮件送信</h1> <!-- ▼显示提示信息▼ -->
<?php if(Yii::app()->user->hasFlash('success')){ ?>
<div class="flash-success">
<?php echo Yii::app()->user->getFlash('success'); ?>
</div>
<?php } ?> <?php if(Yii::app()->user->hasFlash('failed')){ ?>
<div class="flash-error">
<?php echo Yii::app()->user->getFlash('failed'); ?>
</div>
<?php } ?>
<!-- ▲显示提示信息▲ --> <div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'mail-form',
'method'=>'post',
'enableClientValidation'=>true,
'clientOptions'=>array(),
)); ?> <?php //echo $form->errorSummary($model); ?> <!-- 送信元 -->
<div class="row">
<?php echo $form->labelEx($model,'from'); ?>
<?php echo $form->textField($model,'from'); ?>
<?php echo $form->error($model,'from'); ?>
</div>
<!-- 送信先 -->
<div class="row">
<?php echo $form->labelEx($model,'to'); ?>
<?php echo $form->textField($model,'to'); ?>
<?php echo $form->error($model,'to'); ?>
</div>
<!-- 件名 -->
<div class="row">
<?php echo $form->labelEx($model,'subject'); ?>
<?php echo $form->textField($model,'subject'); ?>
<?php echo $form->error($model,'subject'); ?>
</div>
<!-- 内容 -->
<div class="row">
<?php echo $form->labelEx($model,'body'); ?>
<?php echo $form->textArea($model,'body', array('cols'=>'80', 'rows'=>'10',)); ?>
<?php echo $form->error($model,'body'); ?>
</div> <div class="row">
<?php echo CHtml::Button('送信',
array(
'submit'=>array(),
'params'=>array('YII_CSRF_TOKEN' => Yii::app()->request->csrfToken),
));
?>
</div> <?php $this->endWidget(); ?>
</div>

5 Controller: MailController.php

<?php

class MailController extends Controller {

    public function actionIndex() {

        $model = new MailForm();

        if (isset($_POST["MailForm"])){
$model->attributes=$_POST['MailForm']; if($model->validate()) {
$message = new YiiMailMessage(); $message->setFrom(array($model->from => '送信人'));
$message->setTo(array($model->to => '收信人'));
$message->setSubject($model->subject);
$message->setBody($model->body); $sendmail = Yii::app()->mail->send($message) ; if ($sendmail) {
Yii::app()->user->setFlash("success", "Emails sent: OK \n" );
$this->refresh();
} else {
Yii::app()->user->setFlash("failed", "Emails sent: NG \n");
}
}
} $this->render('index',
array(
'model' => $model,
));
}
}

yii-mail yii 发送邮件的更多相关文章

  1. yii 使用 phpmailer发送邮件

    原文链接 :  http://www.yiiframework.com/extension/mailer/ 下载插件放在 :XXX/protected/extensions/ 作为一个普通的组建使用 ...

  2. Linux下使用mail命令发送邮件

    因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...

  3. 用linux mail命令发送邮件[Linux]

    mail [-s 邮件标题] <<邮件地址1> [邮件地址2] [邮件地址3]> [ < 包含邮件内容的文件路径 ] <-- -f 发送邮件地址> [-F 显 ...

  4. Java使用javax.mail.jar发送邮件并同意发送附件

    因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一 ...

  5. 浏览器访问php脚本通过sendmail用mail函数发送邮件

    前几天做项目遇到这样的一个问题:当某一个结点下有新的文章发表的时候,以邮件的形式通知该结点下的所有用户.这就需要用到邮件发送的功能. 因为项目是php语言做的,所以最简单的方法就是使用php自带的函数 ...

  6. Ubuntu下使用mail命令发送邮件

    Ubuntu下使用mail命令发送邮件 mail命令在Ubuntu下是需要安装的,使用下条命令进行安装: sudo apt-get install heirloom-mailx 接下来输入用户密码,等 ...

  7. yii mailer 扩展发送邮件

    // 将mailer扩张放到 yii 的extension目录下 $message = 'Hello World!'; $mailer = Yii::createComponent('applicat ...

  8. php mail 函数发送邮件

    当然你可以通过php ,在自己的站点制作一个反馈表单, 我这次的需求是用email 的形式发送数据报表,结构比较简单 // 收件人地址(此处只可以写一个地址,写多个地址,只有最后一个地址生效) $to ...

  9. SQL Server 2014 Database Mail重复发送邮件特殊案例

    在一数据库服务器(Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64))发现有个作业调用Database Mail发送邮件时, ...

  10. Android使用Java Mail API发送邮件

    最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交. ...

随机推荐

  1. asp显示多条记录的代码

    asp显示多条记录的代码 仅供参考 <%for i=1 to RS.PageSize%> <% if RS.EOF then exit for end if %> <tr ...

  2. Tutorial: WPF User Control for AX2012

    原作者: https://community.dynamics.com/ax/b/goshoom/archive/2011/10/06/tutorial-wpf-user-control-for-ax ...

  3. linux string 操作

    http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 字符替换 sed -i 's/3306/3308/g' my.cnf my ...

  4. php中method_exists()和is_callable()如何进行语句判断

    method_exists()和is_callable()方法进行判断.那么两则区别是什么呢? 已知类文件如下: class Student{private $alias=null;private $ ...

  5. JavaEE基础(十七)/集合

    1.集合框架(HashSet存储字符串并遍历) A:Set集合概述及特点 通过API查看即可 B:案例演示 HashSet存储字符串并遍历 HashSet<String> hs = new ...

  6. recycleview中使用checkbox导致的重复选中问题

    参考博文:http://www.myexception.cn/mobile/1852852.html 在使用RecycleView做仿微信图片选择器,其中条目中使用了checkbox,在选中时由于ho ...

  7. [xcode]instruments来检验你的app

      原文网址:http://www.cocoachina.com/industry/20140114/7696.html     比较了好多关于instruments 还是发现老外写的比较牛逼.于是果 ...

  8. IE6下 input 背景图滚动问题及标签规范

    ie6 背景图滚动问题: <title>ie6下input背景图滚动问题</title> <style> .box{ height:20px; width:300p ...

  9. jquery 判断checkbox是否为空的三种方法

    //方法一: if ($("#checkbox-id")get(0).checked) { // do something } //方法二:也适用于单选按钮 if($('#chec ...

  10. 20150820 PROCEDURE 模板

    USE [DB_H_F1]GO/****** Object:  StoredProcedure [dbo].[sp_sys_user_add]    Script Date: 08/19/2015 1 ...