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 ...
随机推荐
- 树莓派Odroid等卡片式电脑上搭建NAS教程系列6-miniDLNA
目录: 1. 树莓派Odroid等卡片式电脑上搭建NAS教程系列1-Ubuntu系统安装 2. 树莓派Odroid等卡片式电脑上搭建NAS教程系列2-SSH连接访问 3. 树莓派Odroid等卡片式电 ...
- 音乐播放器 EasyMusic (一)
EasyMusic 一. 代码获取 github 上链接为 https://github.com/VincentWYJ/EasyMusic, 感兴趣的朋友可以同步下来看, 欢迎提出宝贵意见或建议. 1 ...
- ModernUI教程:如何使用你自己的导航框架
Modern UI for WPF带有一个内置的页面导航框架,易于使用和可扩展的.但这并不是必须的,你也可以自己来自定义一个导航框架. 默认的ModernWindow控件模板包括标 ...
- 图片轮播图插件的使用 unslider!!!
1.百度图片轮播图unslider,第一个就会出现jquery unslider轮播图,点击进去,下载网站提供的文件,解压,内部有我们需要使用的各种js,图片等. 2.在自己的eclipse或者int ...
- XRecyclerView Scrapped or attached views may not be recycled
将XRecyclerView布局设置为 android:layout_width="match_parent"android:layout_height="match_p ...
- How To Set Up an OpenVPN Server on Ubuntu 14.04
Prerequisites The only prerequisite is having a Ubuntu 14.04 Droplet established and running. You wi ...
- HTML5图形图像处理技术研究
摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了 ...
- iOS10遇到有推送的Demo真机报错的解决
1.打开project.pbxproj,搜com.apple.Push 改成enabled = 0(在projectName.xcodeproj文件上右键"显示包内容",用文本编辑 ...
- hihoCoder 后缀自动机三·重复旋律6
后缀自动机三·重复旋律6 时间限制:15000ms 单点时限:3000ms 内存限制:512MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为一段数构成的数列. 现在小Hi ...
- AOJ DSL_2_E Range Add Query (RAQ)
Range Add Query 数列 A = {a1,a2,...,an} に対し.次の2つの操作を行うプログラムを作成せよ. add(s,t,x): as,as+1,...,at にxを加算する. ...