yii-mail yii 发送邮件
参考网址: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 发送邮件的更多相关文章
- yii 使用 phpmailer发送邮件
原文链接 : http://www.yiiframework.com/extension/mailer/ 下载插件放在 :XXX/protected/extensions/ 作为一个普通的组建使用 ...
- Linux下使用mail命令发送邮件
因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...
- 用linux mail命令发送邮件[Linux]
mail [-s 邮件标题] <<邮件地址1> [邮件地址2] [邮件地址3]> [ < 包含邮件内容的文件路径 ] <-- -f 发送邮件地址> [-F 显 ...
- Java使用javax.mail.jar发送邮件并同意发送附件
因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一 ...
- 浏览器访问php脚本通过sendmail用mail函数发送邮件
前几天做项目遇到这样的一个问题:当某一个结点下有新的文章发表的时候,以邮件的形式通知该结点下的所有用户.这就需要用到邮件发送的功能. 因为项目是php语言做的,所以最简单的方法就是使用php自带的函数 ...
- Ubuntu下使用mail命令发送邮件
Ubuntu下使用mail命令发送邮件 mail命令在Ubuntu下是需要安装的,使用下条命令进行安装: sudo apt-get install heirloom-mailx 接下来输入用户密码,等 ...
- yii mailer 扩展发送邮件
// 将mailer扩张放到 yii 的extension目录下 $message = 'Hello World!'; $mailer = Yii::createComponent('applicat ...
- php mail 函数发送邮件
当然你可以通过php ,在自己的站点制作一个反馈表单, 我这次的需求是用email 的形式发送数据报表,结构比较简单 // 收件人地址(此处只可以写一个地址,写多个地址,只有最后一个地址生效) $to ...
- SQL Server 2014 Database Mail重复发送邮件特殊案例
在一数据库服务器(Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64))发现有个作业调用Database Mail发送邮件时, ...
- Android使用Java Mail API发送邮件
最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交. ...
随机推荐
- XML 解析 -- IE ,Chrome
通用的method <script type="text/javascript"> //for chrome, attach method to XMLDocument ...
- 训练集(train set) 验证集(validation set) 测试集(test set)
转自:http://www.cnblogs.com/xfzhang/archive/2013/05/24/3096412.html 在有监督(supervise)的机器学习中,数据集常被分成2~3个, ...
- SQL Server 索引和表体系结构(一)
转自:http://www.cnblogs.com/chenmh/p/3780221.html 聚集索引 概述 关于索引和表体系结构的概念一直都是讨论比较多的话题,其中表的各种存储形式是讨论的重点,在 ...
- 20150626_Andriod_02_ListView2_列表与详细信息
android listview 参考地址: http://www.cnblogs.com/zhengbeibei/archive/2013/05/14/3078805.html http://xy ...
- hasOwnproperty详细总结
hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象.不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员. isPrototypeO ...
- K - Work 分类: 比赛 2015-07-29 19:13 3人阅读 评论(0) 收藏
K - Work Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- Animation在每一帧中的执行顺序测试
测试代码: void Update() { transform.position = Vector3.zero; } void LateUpdate() { Debug.Log(transform.p ...
- java中|与||,&与&&到底有什么区别呢?
&是位运算符.&&是布尔逻辑运算符.在运行上,&两边的条件都要判断(不管前面的是ture还是false),而&&先判断前面的,若为false,则后面的不 ...
- ADO.NET增删改-------跟查不一样
建立数据库 create database ren go use database go create table user ( code nvarchar(20) primary key,--编号 ...
- python访问mysql将返回的表转化为json
## Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreement ...