当前位置:   article > 正文

springboot实现发送邮箱验证码_springboot发送邮箱验证码

springboot发送邮箱验证码

准备工作

在邮箱官网开放SMTP授权,获取相应密钥,才可以进行发送邮件

这里以网易163邮箱为例,登录邮箱后,依次点击“设置-POP3/SMTP/IMAP” ,然后开启SMTP服务。这时候会提示一个授权码,例如:HMASDWFASCZSMTAS,一定要记下来,一会会用到


实现步骤 

第一步、在pom.xml中添加邮箱依赖

  1. <!-- 邮箱验证码依赖 -->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-mail</artifactId>
  5. </dependency>

第二步、在application.yml中配置邮箱连接信息

  1. spring:
  2. mail:
  3. #smtp服务主机 qq邮箱则为smtp.qq.com;163邮箱是smtp.163.com
  4. host: smtp.163.com
  5. #服务协议
  6. protocol: smtp
  7. # 编码集
  8. default-encoding: UTF-8
  9. #发送邮件的账户
  10. username: ************@163.com
  11. #授权码
  12. password: ****************
  13. test-connection: true
  14. properties:
  15. mail:
  16. smtp:
  17. auth: true
  18. starttls:
  19. enable: true
  20. required: true

第三步、新建一个工具类,用于生成6位数的随机数

  1. /**
  2. * 字符处理工具
  3. */
  4. public class CharUtil {
  5. /**
  6. * 随机数6位生成
  7. * @return
  8. */
  9. public static String randomVerify () {
  10. Random random = new Random();
  11. String result = "";
  12. for (int i=0; i<6; i++)
  13. {
  14. result += random.nextInt(10);
  15. }
  16. return result;
  17. }
  18. }

第四步、新建一个controller接口类(核心)即可实现发送邮件

  1. @RestController
  2. @RequestMapping("/mail")
  3. public class MailVerifyController {
  4. @Autowired
  5. private JavaMailSender mailSender;
  6. // 获得发件人信息
  7. @Value("${spring.mail.username}")
  8. private String from;
  9. /**
  10. * 发送邮件验证码
  11. * @param mail 发送的邮箱
  12. * @return
  13. */
  14. @PostMapping("/send")
  15. public Result save(@RequestParam String mail) {
  16. // 获取随机6位验证码
  17. String verify = CharUtil.randomVerify();
  18. SimpleMailMessage message = new SimpleMailMessage();
  19. // 发送邮箱
  20. message.setFrom(from);
  21. // 接受邮箱
  22. message.setTo(mail);
  23. // 标题
  24. message.setSubject("测试服务平台-邮箱验证");
  25. // 内容
  26. message.setText("<h1>尊敬的用户您好:</h1><br>" +
  27. "<h5> 您正在进行邮箱验证,本次验证码为:<span style='color:#ec0808;font-size: 20px;'>" + verify + "</span>,请在10分钟内进行使用。</h5>" +
  28. "<h5>如非本人操作,请忽略此邮件,由此给您带来的不便请谅解!</h5> <h5 style='text-align: right;'>--测试服务平台</h5>");
  29. try{
  30. // 发送邮件
  31. mailSender.send(message);
  32. return Result.success(200,"验证码发送成功");
  33. } catch (Exception e) {
  34. return Result.success(404,"验证码系统发送失败,请检查邮箱账号是否正确!",e);
  35. }
  36. }
  37. }

效果图 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/686380
推荐阅读
相关标签
  

闽ICP备14008679号