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的提交. ...
随机推荐
- postgres创建用户,表
使用createuser来创建用户 [postgres@web1 ~]$ /data/pgsql/bin/createuser --help createuser creates a new Post ...
- 在Linux中打印函数调用堆栈【原创】
本人学习笔记,代码参考如下网址 参考http://www.cnblogs.com/dma1982/archive/2012/02/08/2342215.html zhangbh@prolin-srv: ...
- 启动hadoop报192.168.1.151: Address 192.168.1.151 maps to node1, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
使用root用户启动hadoop的时候报错: [root@node1 ~]# su - hadoop -c start-all.sh starting namenode, logging to /ap ...
- redis初试牛刀
先来无事就学学redis.可是并没有想的那么美好.首先要解释一下,redis主流是安装在lunx系统中的,甚至官网直接没有给出windows版本.要下载windows只能去所谓的githup.好吧我在 ...
- javaWEB中的HttpServlet(企业开发使用)
HttpServlet: 1). 是一个 Servlet, 继承自 GenericServlet. 针对于 HTTP 协议所定制. 2). 在 service() 方法中直接把 ServletReuq ...
- Ahui Writes Word
Ahui Writes Word Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- Sqlite查询时间段内的数据问题解决!
最近搞Sqlite本地查询,需求为查询某时间段内的数据,在SQL中我们都知道为: select * from tblName where rDate Between '2008-6-10' and ...
- hrtimer和work工作队列的使用
1.hrtimers - 为高分辨率kernel定时器,可作为超时或周期性定时器使用 1). hrtimer_init初始化定时器工作模式. hrtimer_init(&vibe_timer, ...
- CentOS搭建Redis集群
集群原理-redis-cluster架构图 架构细节: (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的 ...
- 【Java】ServerSocket的学习笔记
公司有本<Java网络编程>一直闲置在书架上,反正我对Socket方面不太懂,今天跟着书学习一番. > 参考的优秀书籍 <Java网络编程> --中国电力出版社 > ...