前言:
👏作者简介:我是笑霸final,一名热爱技术的在校学生。
📝个人主页:个人主页1 || 笑霸final的主页2
📕系列专栏:《项目专栏》
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏
仿瑞吉外卖 【手机登陆功能换成邮件登陆】
一、导入坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
二.邮件发送需要的配置
因为各大邮件都有其对应安全系统,不是项目中想用就可以用的,我们必须要拿到其对应的客户端授权码才行,拿到授权码,在项目中配置SMTP服务协议以及主机 配置账户 ,就可以在项目中使用各大邮件运营商进行发送邮件了
步骤(取QQ邮箱授权码为例):
先登陆qq邮箱 然后点击设置 选择 账户选项
开启POP3/SMTP
然后牢记授权码Springboot工程中的配置文件 aplication.yml 或者properties文件配置授权码
spring:
mail:
#smtp服务主机 163邮箱则为smtp.163.com
host: smtp.qq.com
#服务协议
protocol: smtp
# 编码集
default-encoding: UTF-8
#发送邮件的账户
username: xxxxxxx@qq.com
#授权码
password: xxxxxx
test-connection: true
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
三.代码编写
- 先在
Usercontroller 中注入对象
@Autowired
private JavaMailSender mailSender;
- 发送方就是我们自己的邮件了!在Usercontroller写
@Value("${spring.mail.username}")
private String MyFrom;
四、SimpleMailMessage 详细说明
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom();//发送人
message.setTo();//谁要接收
message.setSubject("");//邮件标题
message.setText();邮件内容
- **改造代码public R sendMsg(@RequestBody User user, HttpSession session)
/**
* 发送验证码
* @param user
* @return
*/
@PostMapping("/sendMsg")
public R<String> sendMsg(@RequestBody User user,
HttpSession session){
log.info("R<String> sendMsg()进来了");
//获取手机号
final String phone = user.getPhone();//就不修改实体类了把邮件写进 Phone
//判断手机号不为空
if(StringUtils.isNotEmpty(phone)) {
//生成4位验证码
final String code =
ValidateCodeUtils.generateValidateCode(4).toString();
System.out.println("==========");
System.out.println(code);//验证码
System.out.println("==========");
//***************************************************/
//创建简单邮件消息
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(MyFrom);//用自己的邮件发
//谁要接收
message.setTo(phone);
//邮件标题
message.setSubject("验证码");
//邮件内容
message.setText(code);//
try {
mailSender.send(message);
//需要保存一下验证码,后面用来验证
session.setAttribute(phone, code);
return R.success("发送成功");
} catch (MailException e) {
e.printStackTrace();
return R.error("短信发送失败");
}
}
return R.error("短信发送失败");
}
- 修改前端页面的正则表达式 把手机的改为邮件的
/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/;
验证代码:
- 看验证码
完全一致 验证码发送成功