参考网址: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. XML 解析 -- IE ,Chrome

    通用的method <script type="text/javascript"> //for chrome, attach method to XMLDocument ...

  2. 训练集(train set) 验证集(validation set) 测试集(test set)

    转自:http://www.cnblogs.com/xfzhang/archive/2013/05/24/3096412.html 在有监督(supervise)的机器学习中,数据集常被分成2~3个, ...

  3. SQL Server 索引和表体系结构(一)

    转自:http://www.cnblogs.com/chenmh/p/3780221.html 聚集索引 概述 关于索引和表体系结构的概念一直都是讨论比较多的话题,其中表的各种存储形式是讨论的重点,在 ...

  4. 20150626_Andriod_02_ListView2_列表与详细信息

    android listview 参考地址: http://www.cnblogs.com/zhengbeibei/archive/2013/05/14/3078805.html  http://xy ...

  5. hasOwnproperty详细总结

    hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象.不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员. isPrototypeO ...

  6. K - Work 分类: 比赛 2015-07-29 19:13 3人阅读 评论(0) 收藏

    K - Work Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  7. Animation在每一帧中的执行顺序测试

    测试代码: void Update() { transform.position = Vector3.zero; } void LateUpdate() { Debug.Log(transform.p ...

  8. java中|与||,&与&&到底有什么区别呢?

    &是位运算符.&&是布尔逻辑运算符.在运行上,&两边的条件都要判断(不管前面的是ture还是false),而&&先判断前面的,若为false,则后面的不 ...

  9. ADO.NET增删改-------跟查不一样

    建立数据库 create database ren go use database go create table user ( code nvarchar(20) primary key,--编号 ...

  10. python访问mysql将返回的表转化为json

    ## Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreement ...