使用邮箱发送验证码功能
提示:本人用的是QQ邮箱,其他邮箱方式类似
文章目录
一、开启POP3/SMTP服务
1.进入QQ邮箱,点击设置
2.选中账户
3.然后一直往下划,找到图片中POP3/SMTP服务,点击开启
(注意开启后会收到一个授权码,一定要好好保存,在appliction.properties配置中会用到)
*
二、加入依赖 和 配置application.yml文件
1.在pom.xml文件中引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
2.application.yml文件加入相关配置
代码如下(示例):
spring:
mail:
host: smtp.qq.com 默认平台服务地址无需更改
username:**********@qq.com 自己邮箱号
password: mskctkdiaevodcee 这是我们在刚刚开启POP3/SMTP服务时收到的授权码(如果忘了把服务重开一次!)default-encoding: utf-8 改编码格式
protocol: smtp
port:25 端口号
properties:
mail.smtp.socketFactory.class:javax.net.ssl.SSLSocketFactory
三 .创建Mail 控制层 和业务层
1.业务层代码
packagecn.itrip.service.mail;/**
* 接口
* @author liyuzhen
*/publicinterfaceMailService{/**
* 邮件发送
* @param to
* @param subject
* @param text
* @return
*/booleansendMail(Stringto,String subject,String text);}
packagecn.itrip.service.mail;importorg.springframework.mail.MailException;importorg.springframework.mail.SimpleMailMessage;importorg.springframework.mail.javamail.JavaMailSender;importorg.springframework.stereotype.Service;/**
* 实现类
* @author liyuzhen
*/@ServicepublicclassMailServiceImplimplementsMailService{/**
* springboot专门发送邮件接口
*/privatefinalJavaMailSender mailSender;privateString from;publicMailServiceImpl(JavaMailSender mailSender){this.mailSender= mailSender;}@OverridepublicbooleansendMail(Stringto,String subject,String text){SimpleMailMessage msg=newSimpleMailMessage();//发送邮件的邮箱
msg.setFrom("******@qq.com");//发送到哪(邮箱)
msg.setTo(to);//邮箱标题
msg.setSubject(subject);//邮箱文本
msg.setText(text);try{
mailSender.send(msg);}catch(MailException ex){System.err.println(ex.getMessage());returnfalse;}returntrue;}}
2.控制层代码
/**
* @author liyuzhen
*/@RestController@RequestMapping("/auth/api")publicclassItripAuthController{/**
引入业务层依赖
*/@ResourceprivateMailService mailService;@GetMapping("/*****")publicDtotest(){//在这里调用业务层代码//发送邮箱//内容你们可以用一些随机数,毫秒值做为内容,以便达到验证码的效果
mailService.sendMail("发送到的邮箱","主题","内容:");}}
总结
本次主要了解了如何使用通过自己注册的邮箱, 给用户注册时提供验证码支持
(内容你们可以用一些随机数,毫秒值做为内容,以便达到验证码的效果)