springboot实现邮箱验证码功能
本文实例为大家分享了springboot实现邮箱验证码功能的具体代码,供大家参考,具体内容如下
我这边使用的QQ邮箱
1、首先创建maven项目,配置pom文件
4.0.0 com.example springbootdemo 0.0.1-SNAPSHOT jar springbootdemo DemoprojectforSpringBoot 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?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")
publicclassMailService{
@Value("${spring.mail.username}")
privateStringfrom;
@Autowired
privateJavaMailSendermailSender;
Loggerlogger=LoggerFactory.getLogger(this.getClass());
publicvoidsendSimpleMail(Stringto,Stringtitle,Stringcontent){
SimpleMailMessagemessage=newSimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(title);
message.setText(content);
mailSender.send(message);
logger.info("邮件发送成功");
}
publicvoidsendAttachmentsMail(Stringto,Stringtitle,Stringcotent,ListfileList){
MimeMessagemessage=mailSender.createMimeMessage();
try{
MimeMessageHelperhelper=newMimeMessageHelper(message,true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(title);
helper.setText(cotent);
StringfileName=null;
for(Filefile:fileList){
fileName=MimeUtility.encodeText(file.getName(),"GB2312","B");
helper.addAttachment(fileName,file);
}
}catch(Exceptione){
e.printStackTrace();
}
mailSender.send(message);
logger.info("邮件发送成功");
}
}
4、编写controller
@Controller
publicclassMailController{
@Autowired
privateMailServicemailService;
@RequestMapping("getCheckCode")
@ResponseBody
publicStringgetCheckCode(Stringemail){
StringcheckCode=String.valueOf(newRandom().nextInt(899999)+100000);
Stringmessage="您的注册验证码为:"+checkCode;
try{
mailService.sendSimpleMail(email,"注册验证码",message);
}catch(Exceptione){
return"";
}
returncheckCode;
}
}
5、编写页面
注册 请输入注册信息 邮箱: