仿联想商城laravel实战---7、lavarel中如何给用户发送邮件

一、总结

一句话总结:

设置邮件服务器,比如163邮箱
lavarel中配置邮件服务,在.env中
控制器中使用Mail对象发送邮件
也可直接百度“lavarel中 如何发送邮件” 或 手册的邮件发送里面去看

1、如何设置邮件服务器?

1、登录163邮箱
2、设置》POP3/SMTP
3、设置授权密码

2、laravel中配置邮件服务器在哪个文件(及如何配置)?

.env 以及 config里面的mail.php(设置from(发送方))
打开.env文件
MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=25
MAIL_USERNAME=18734136852@163.com
MAIL_PASSWORD=a123456
MAIL_ENCRYPTION=null
MAIL_FROM_NAME=联想账户中心

3、lavarel中向用户发送邮件有哪两种主要方式?

发送文字:Mail对象的raw()方法
发送页面:Mail对象的send()方法
1、发送文字

\Mail::raw('我爱你云知梦',function($message){
$message->to("892865095@qq.com");
$message->subject("亲爱的用户,恭喜您注册成功");
}); 2、发送页面
send()方法
\Mail::send('mail.index',[],function($message){
$message->to("892865095@qq.com");
$message->subject("亲爱的用户,恭喜您注册成功");
});

4、lavarel中发送验证邮件,让用户自己激活如何实现?

发送带参数的‘’立即激活‘’页面到用户邮箱:发送的验证邮件里面有立即激活的a标签,这个a标签是直接跳转到网站页面,这个a标签也带上用户id和token等参数,
控制器中激活:根据用户在邮箱中点击的链接及链接的参数完成激活

5、接收页面传过来的参数是在路由中还是在控制器中?

路由中

6、如何判断用户激活的时候token值是否正确?

将token值存入数据库,和用户激活传过来的token值做对比,激活成功之后更新token值(防止重复激活)
// 激活账户

public function jihuo($id,$token){

  // 查询用户存在

  $data=\DB::table("user")->where("id",$id)->first();

  // 判断token

  if ($token==$data->token) {
# code...
$arr=array(); $arr['status']=1;
$arr["token"]=str_random(50); // 进行数据库状态的修改 激活成功 跳转到登陆页面
if(\DB::table("user")->where("id",$id)->update($arr)){
return redirect("/login");
} }else{
echo "您的token已经过期";
} }

7、lavarel闭包中如何使用外部变量?

use方法:\Mail::send('mail.index',["id"=>$id,"token"=>$data['token']],function($message) use($email){
$email=$arr['email'];
\Mail::send('mail.index',["id"=>$id,"token"=>$data['token']],function($message) use($email){
$message->to($email);
$message->subject("亲爱的用户,恭喜您注册成功");
});

8、邮件激活可以优化的部分?

用户注册之后,弹出一个立即激活的页面,这个页面可以直接跳转到用户的邮箱

9、a链接如何跳转到用户注册的邮箱(比如qq邮箱,比如用户激活账户的时候)?

直接根据@后面的部分特判邮箱服务器地址
function gotomail($mail) {
$temp=explode('@',$mail);
$t=strtolower($temp1); if ($t=='163.com') {
return 'mail.163.com';
} else if ($t=='vip.163.com') {
return 'vip.163.com';
} else if ($t=='126.com') {
return 'mail.126.com';
} else if ($t=='qq.com' || $t=='vip.qq.com' || $t=='foxmail.com') {
return 'mail.qq.com';
} else if ($t=='gmail.com') {
return 'mail.google.com';
} else if ($t=='sohu.com') {
return 'mail.sohu.com';
} else if ($t=='tom.com') {
return 'mail.tom.com';
} else if ($t=='vip.sina.com') {
return 'vip.sina.com';
} else if ($t=='sina.com.cn' || $t=='sina.com') {
return 'mail.sina.com.cn';
} else if ($t=='tom.com') {
return 'mail.tom.com';
} else if ($t=='yahoo.com.cn' || $t=='yahoo.cn') {
return 'mail.cn.yahoo.com';
} else if ($t=='tom.com') {
return 'mail.tom.com';
} else if ($t=='yeah.net') {
return 'www.yeah.net';
} else if ($t=='21cn.com') {
return 'mail.21cn.com';
} else if ($t=='hotmail.com') {
return 'www.hotmail.com';
} else if ($t=='sogou.com') {
return 'mail.sogou.com';
} else if ($t=='188.com') {
return 'www.188.com';
} else if ($t=='139.com') {
return 'mail.10086.cn';
} else if ($t=='189.cn') {
return 'webmail15.189.cn/webmail';
} else if ($t=='wo.com.cn') {
return 'mail.wo.com.cn/smsmail';
} else if ($t=='139.com') {
return 'mail.10086.cn';
} else {
return '';
}
}

二、内容在总结中

 

仿联想商城laravel实战---7、lavarel中如何给用户发送邮件的更多相关文章

  1. 仿联想商城laravel实战---4、验证(lavarel的表单验证如何使用)

    仿联想商城laravel实战---4.验证(lavarel的表单验证如何使用) 一.总结 一句话总结: 验证规则和验证信息的数组:在控制器的方法中 1.注册页面中的用户名正确(比如是否重名,字段长度是 ...

  2. 仿联想商城laravel实战---1、仿联想商城需求和数据库设计(lavarel如何搭建项目)

    仿联想商城laravel实战---1.仿联想商城需求和数据库设计(lavarel如何搭建项目) 一.总结 一句话总结: composer引入lavarel.配置域名.配置apache 1.项目名 le ...

  3. 仿联想商城laravel实战---2、后端页面搭建(验证码如何在页面中使用)

    仿联想商城laravel实战---2.后端页面搭建(验证码如何在页面中使用) 一.总结 一句话总结: 放在img里面,img的src就是生产验证码的控制器路径: img src="/admi ...

  4. 仿联想商城laravel实战---6、自建配置文件和缓存(如何读取自己创建的配置文件的信息)

    仿联想商城laravel实战---6.自建配置文件和缓存(如何读取自己创建的配置文件的信息) 一.总结 一句话总结: config()及相应的方法 1.前端插件选择好了,后端开发超级省力? 比如多图上 ...

  5. 仿联想商城laravel实战---5、无刷新的增删改查(动态页面更新的三种方式(html))

    仿联想商城laravel实战---5.无刷新的增删改查(动态页面更新的三种方式(html)) 一.总结 一句话总结: 直接js增加删除修改html 控制器直接返回处理好的页面 用双向绑定插件比如vue ...

  6. 仿联想商城laravel实战---3、前端页面搭建(什么情况下需要路由接参数)

    仿联想商城laravel实战---3.前端页面搭建(什么情况下需要路由接参数) 一.总结 一句话总结: 比如访问课程的时候,不同的课程(比如云知梦),比如访问不同的商品,比如访问不同的分类 //商品详 ...

  7. ThinkPHP3.2开发仿京东商城项目实战视频教程

    ThinkPHP3.2仿京东商城视频教程实战课程,ThinkPHP3.2开发大型商城项目实战视频 第一天 1.项目说明 2.时间插件.XSS过滤.在线编辑器使用 3.商品的删除 4.商品的修改完成-一 ...

  8. 商城项目实战 | 2.2 Android 仿京东商城——自定义 Toolbar (二)

    本文为菜鸟窝作者刘婷的连载."商城项目实战"系列来聊聊仿"京东淘宝的购物商城"如何实现. 上一篇文章<商城项目实战 | 2.1 Android 仿京东商城 ...

  9. legend3---lavarel中使用qq邮箱发送邮件

    legend3---lavarel中使用qq邮箱发送邮件 一.总结 一句话总结: 第一步:配置邮箱做服务器,比如qq邮箱,网易163邮箱 第二步:配置lavarel的配置文件 第三部:写邮件发送代码就 ...

随机推荐

  1. Python snap

    orderedDict enum sys.path 注册装饰器 装饰器检查 入参 Flask01 flask_script flask blue print functools.partial dns ...

  2. 一种关键字搜索---edu.cn

    比如要搜索知识点最小二乘,可以这样: 曲线拟合的最小二乘法 edu.cn 然后就一大片关于edu的相关链接,很多知名学校链接 http://www.bb.ustc.edu.cn/jpkc/xiaoji ...

  3. iOS将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法

    demo下载地址 http://pan.baidu.com/s/1pLcpKpl 1.Unity导出工程时设置bundle id要与项目一致 2.修改bit code为NO 3.删除Main.stor ...

  4. hdu4847:Wow! Such Doge!(字符串匹配)

    题目:hdu4847:Wow! Such Doge! 题目大意:在给出的段落里面找出"doge"出现的次数.大写和小写都能够. 解题思路:字符串匹配问题,能够在之前将字母都转换成统 ...

  5. 嵌套SQL语句訪问DB2中SQLCA的调用技巧

    在IBM的关系型数据库产品DB2中,使用SQL Communication Area(SQLCA)将程序中嵌套的SQL语句执行情况返回给程序. 在程序中有针对性地对SQLCA实施调用,可对程序中各类S ...

  6. java jdk和android sdk的安装以及环境变量的配置

    安卓环境变量设置 (烦)http://wenku.baidu.com/link?url=QRwpFhP8d0yJorhcvuZPrz3lNFQW-uwYg6TlZtv6uen6_SVsvRrzf0UJ ...

  7. 解决 ie 返回json提示下载 ResponseEntity方法

    js 配合java  springMVC后台,成功后返回消息,chrom ff都正常,只有IE提交后返回的JSON提示下载,查看类型 application/json  google后发现原来是IE不 ...

  8. 九度OJ 1351:数组中只出现一次的数字 (位运算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3098 解决:906 题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 输入: 每个 ...

  9. 九度OJ 1180:对称矩阵 (矩阵计算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2637 解决:1354 题目描述: 输入一个N维矩阵,判断是否对称. 输入: 输入第一行包括一个数:N(1<=N<=100),表 ...

  10. 《linux 内核全然剖析》 fork.c 代码分析笔记

    fork.c 代码分析笔记 verifiy_area long last_pid=0; //全局变量,用来记录眼下最大的pid数值 void verify_area(void * addr,int s ...