热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

springboot实现邮箱验证码功能

这篇文章主要为大家详细介绍了springboot实现邮箱验证码功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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禁止重发

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
author-avatar
沈晓燕-东东
这个家伙很懒,什么也没留下!