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、编写页面
注册 请输入注册信息 邮箱: