参考网址: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. org.hibernate.PropertyNotFoundException:could not find a getter for name in class ....

    Hibernate创建持久化类须符合JavaBean的规范,"get","set"后面紧跟属性的名字,并且属性名的首字母为大写.如果不遵守这个规则,Hibern ...

  2. PHP删除MySQL数据库下的所有数据表

    <?php //[数据无价,请谨慎操作!] $hostname ='localhost';  $userid = 'username';  $password = 'password';  $d ...

  3. C#: 获取执行程序所在路径和启动资源管理器

    一. 获取执行程序所在路径 1.获取和设置当前目录的完全限定路径. string str = System.Environment.CurrentDirectory;  //获取的是主程序目录,线程启 ...

  4. 【转】用 SVN Importer 实现 CSVNT 到 SVN 的转换

    转载地址:http://www.blogjava.net/yongbing/archive/2007/03/04/101761.html 用 SVN Importer 实现 CSVNT 到 SVN 的 ...

  5. 【转】java_web开发入门

    转载地址:http://www.cnblogs.com/xiaoqv/archive/2011/12/10/2283348.html 一.Tomcat服务器常见启动问题:(1).Java_home环境 ...

  6. windows下wordpress环境快速搭建

    所需要软件下载网址:https://bitnami.com/ 安装使用说明网址:http://www.websoft9.com/wp-content/plugins/documente/documen ...

  7. 解决CentOS下man 命令,没有帮助信息

    Cannot open the message catalog "man" for locale "zh_CN.UTF-8" (NLSPATH="/u ...

  8. shell脚本判断文件类型

    转自:http://www.cnblogs.com/sunyubo/archive/2011/10/17/2282047.html 1. shell判断文件,目录是否存在或者具有权限 2. #!/bi ...

  9. ArrayList实现原理

    转载:http://wiki.jikexueyuan.com/project/java-collection/arraylist.html ArrayList 概述 ArrayList 可以理解为动态 ...

  10. jquery easyui 弹出消息框

    <html> <head> <!-- 导入easyui插件的js和css样式; --> <link rel="stylesheet" ty ...