使用邮箱发送验证码功能
提示:本人用的是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: ************ 这是我们在刚刚开启POP3/SMTP服务时收到的授权码(如果忘了把服务重开一次!)
default-encoding: utf-8 改编码格式
protocol: smtp
port: 25 端口号
properties:
mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
三 .创建Mail 控制层 和业务层
1.业务层代码
package cn.itrip.service.mail;
/**
* 接口
* @author liyuzhen
*/
public interface MailService {
/**
* 邮件发送
* @param to
* @param subject
* @param text
* @return
*/
boolean sendMail(String to, String subject, String text);
}
package cn.itrip.service.mail;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
/**
* 实现类
* @author liyuzhen
*/
@Service
public class MailServiceImpl implements MailService {
/**
* springboot专门发送邮件接口
*/
private final JavaMailSender mailSender;
private String from;
public MailServiceImpl(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
@Override
public boolean sendMail(String to, String subject, String text) {
SimpleMailMessage msg = new SimpleMailMessage();
//发送邮件的邮箱
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());
return false;
}
return true;
}
}
2.控制层代码
/**
* @author liyuzhen
*/
@RestController
@RequestMapping("/auth/api")
public class ItripAuthController {
/**
引入业务层依赖
*/
@Resource
private MailService mailService;
@GetMapping("/*****")
public Dto test(){
//在这里调用业务层代码
//发送邮箱
//内容你们可以用一些随机数,毫秒值做为内容,以便达到验证码的效果
mailService.sendMail("发送到的邮箱","主题","内容:");
}
}
总结
本次主要了解了如何使用通过自己注册的邮箱, 给用户注册时提供验证码支持
(内容你们可以用一些随机数,毫秒值做为内容,以便达到验证码的效果)