作者:沈晓燕-东东 | 来源:互联网 | 2022-09-29 08:41
本文实例为大家分享了springboot实现邮箱验证码功能的具体代码,供大家参考,具体内容如下
我这边使用的QQ邮箱
1、首先创建maven项目,配置pom文件
<&#63;xml version="1.0" encoding="UTF-8"&#63;>
4.0.0
com.example
springbootdemo
0.0.1-SNAPSHOT
jar
springbootdemo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.4.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
org.springframework.boot
spring-boot-starter-mail
commons-io
commons-io
2.4
mysql
mysql-connector-java
runtime
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-devtools
true
com.github.pagehelper
pagehelper
4.1.6
org.springframework.boot
spring-boot-maven-plugin
src/main/java
**/*.xml
2、配置springboot,我这里使用的是properties方式
#配置Mybatis别名和扫描包
mybatis.type-aliases-package=com.demo.bean
mybatis.mapper-locatiOns=classpath:mapper/*.xml
#数据库相关
spring.datasource.url=jdbc:mysql://localhost:3306/ssm&#63;useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#配置日志
logging.level.root=info
logging.level.com.demo.mapper=debug
#配置视图前缀和后缀
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.html
#邮件发送配置
spring.mail.default-encoding=UTF-8
spring.mail.host=smtp.qq.com
spring.mail.username=你的邮箱
spring.mail.password=邮箱授权码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
#thymeleaf配置
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.cache=false
邮箱授权码可以按以下方法获取
打开QQ邮箱网页→设置→账户→POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务→开启POP3/SMTP服务,然后就能看到授权码了
3、编写mailService
${spring.mail.username}是在properties中配置的属性,这里有一个方法,第一个是发送普通邮件,第二个是发送带有附件的邮件
@Service("mailService")
public class MailService {
@Value("${spring.mail.username}")
private String from;
@Autowired
private JavaMailSender mailSender;
Logger logger = LoggerFactory.getLogger(this.getClass());
public void sendSimpleMail(String to,String title,String content){
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(title);
message.setText(content);
mailSender.send(message);
logger.info("邮件发送成功");
}
public void sendAttachmentsMail(String to, String title, String cotent, List fileList){
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(title);
helper.setText(cotent);
String fileName = null;
for (File file:fileList) {
fileName = MimeUtility.encodeText(file.getName(), "GB2312", "B");
helper.addAttachment(fileName, file);
}
} catch (Exception e) {
e.printStackTrace();
}
mailSender.send(message);
logger.info("邮件发送成功");
}
}
4、编写controller
@Controller
public class MailController {
@Autowired
private MailService mailService;
@RequestMapping("getCheckCode")
@ResponseBody
public String getCheckCode(String email){
String checkCode = String.valueOf(new Random().nextInt(899999) + 100000);
String message = "您的注册验证码为:"+checkCode;
try {
mailService.sendSimpleMail(email, "注册验证码", message);
}catch (Exception e){
return "";
}
return checkCode;
}
}
5、编写页面
6、测试
邮件发送
发送成功
收到邮件
60s禁止重发
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。