yii2.0 框架邮件的发送
第一步:
在main-local.php中的components中配置mailer:
$config = [
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'mail2.augmentum.com.cn',
'username' => 'gladysyang@augmentum.com.cn',
'password'=> '111111',
'port' => '25',//这个可以在网上搜,一般的smtp服务器端口为25
'encryption' => '',
],
'messageConfig' => [
'charset' => 'UTF-8',
'from' => ['gladysyang@augmentum.com.cn'=>'admin']
],
],
],
];
第二步:配置params.php文件(*这个好像不用配置也行,我也是初学者,有点搞不懂,反正配置了也没有影响)
<?php
return [
'adminEmail' => 'gladysyang@augmentum.com.cn',
'supportEmail' => 'gladysyang@augmentum.com.cn',
'user.passwordResetTokenExpire' => 3600,
];
第三步:在model类里面用EmailValidator类验证邮箱地址格式
//验证邮箱
public function emailValidator($email) {
$validator = new EmailValidator();
if ($validator->validate($email, $error)) {
return 'success';
} else {
return $error;
}
}
第四步:在controller中发送邮件
//忘记密码
public function actionForget() {
$request = Yii::$app->request;
$emailAddress = $request->post('email');
//调用User类中的emailValidator方法,判断用户输入的邮箱地址格式是否正确
$message = User::emailValidator($emailAddress); if ($message === 'success') {
//如果邮箱地址格式正确,写邮箱内容
$mail = Yii::$app->mailer->compose();
$mail->setTo($emailAddress);
$mail->setSubject('找回密码');
$mail->setHtmlBody('<font>please click this link</font><br><a href="">iajeijfajfkajfdkjfjdf</a>'); try {
//发送邮件
if ($mail->send()) {
//如果邮件发送成功,解析邮箱地址,拼接成一个url
$emailArr = explode("@", $emailAddress);
$emailUrl = 'https://mail.' . $emailArr[1];
//然后判断url是否存在
if ($this->url_exists($emailUrl)) {
//如果存在,我在邮件发送成功界面出现一个链接
$data['url'] = $emailUrl;
return $this->render('success', $data);
}
//否则直接跳到邮件发送成功界面
return $this->render('success');
}
// "\"默认在系统中找Swift_TransportException
} catch (\Swift_TransportException $e) {
$data['message'] = '邮件发送失败,请检查网络是否正常';
return $this->render('forget', $data);
}
} else {
//如果输入的邮箱错误,还是回到发送邮箱界面
return $this->render('forget', ['message'=>'请输入正确的邮箱']);
}
} //判断网址是否存在
public function url_exists($url) {
$check = @fopen($url,"r");
if($check)
$status = true;
else
$status = false;
return $status;
}
注:这些只是我在写demo时记下的,如有不对的地方,忘指教
yii2.0 框架邮件的发送的更多相关文章
- yii2.0框架安装心得
yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...
- 8.Yii2.0框架控制器接收get.post数据
8.Yii2.0框架控制器接收get.post数据 一.get传参 <?php /** * Created by Haima. * Author:Haima * QQ:228654416 * D ...
- 教你在Yii2.0框架中如何创建自定义小部件
本教程将帮助您创建自己的自定义小部件在 yii framework 2.0.部件是可重用的模块和用于视图. 创建一个小部件,需要继承 yii\base\Widget,覆盖重写 yii\base\Wid ...
- yii2.0框架中session与cookie的用法
我们在开发项目中南面使用到session给和cookie,那么在yii中有他自己的规则 如下案例: session使用 function actionS1(){ echo $t ...
- yii2.0框架where条件的使用
在yii框架中,where条件的使用多种多样,下面就和大家介绍几种常用有效的使用方法 1. ['type' => 1, 'status' => 2] //等于 (type = 1) AND ...
- 22.Yii2.0框架多表关联一对一查询之hasOne
思路: 通过文章查它对应的分类信息 一对一的关系 控制器里 //一对一关联查询 public function actionRelatesone() { //方法一,hasOne() 用查一条文章的结 ...
- 20.Yii2.0框架多表关联一对多查询之hasMany
目录 新手模式 hasMany关联模式查询 新建mode层Article.php 新建mode层Category.php 新建控制器HomeController.php 新手模式 用上次的查询结果,作 ...
- 19.Yii2.0框架模型删除记录
目录 //删除记录 //http://yii.com/?r=home/del public function actionDel() { //查出要删除的记录行 // 方法一:(查一行,删一行) // ...
- 18.Yii2.0框架模型修改记录 和 修改点击量
目录 修改数据 修改点击量 修改数据 上面要 use app\models\Article; //修改 //http://yii.com/?r=home/Edit public function ac ...
随机推荐
- WCF中的错误及解决办法
一 . HTTP 无法注册 URL http://+:8000/Users/.进程不具有此命名空间的访问权限今天按照网上的例子开始学习WCF程序,运行的时候却发现出如下问题:HTTP 无法注册 ...
- Java static 静态代码块执行分析
假设有这样一个类: public class Utils { static { Log.i("static","isLoad!"); } public stat ...
- 8.Android 系统状态栏沉浸式/透明化解决方案
转载:http://www.jianshu.com/p/34a8b40b9308 前言 网上已经有很多有关于系统状态栏的解决方案,这篇文章也不会有什么新奇的解决方案,都是本人经过自己试验,统计提炼出来 ...
- 【poj3875】 Lights
http://poj.org/problem?id=3875 (题目链接) 题意 有M个N位的不同的二进制数,他们异或起来前v位等于1,求这m个数的不同组合方式(同一组数不同顺序不算). Soluti ...
- 如何根据执行计划,判断Mysql语句是否走索引
如何根据执行计划,判断Mysql语句是否走索引
- 大二在CSDN的博客整理
001我为什么想写博客 控制台版2048 version_1.0总结 022 囚徒困境中的均衡-----从一篇经典论文说起 021 模拟退火算法学习(一)-----求解最短连通路径 020 小记一次网 ...
- Java 内存管理
java 内存管理机制 JAVA 内存管理总结 java 是如何管理内存的 Java 的内存管理就是对象的分配和释放问题.(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字 new 为 ...
- XML 架构 (XSD) 参考
https://msdn.microsoft.com/zh-cn/library/ms256235.aspx XML 架构示例 XML 架构元素 XML 数据类型引用 XML 架构正则表达式 XML ...
- jQuery animate动画 stop()方法详解~
一.动画格式: 格式一:jQueryObject.animate( cssProperties, options ) 格式二:$('#id').animate( styles[, duration ] ...
- Google Map API V3开发(6) 代码
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...