SpringBoot利用邮箱注册(发送验证码)

2022-08-19 08:35:36

使用邮箱发送验证码功能

提示:本人用的是QQ邮箱,其他邮箱方式类似


一、开启POP3/SMTP服务

1.进入QQ邮箱,点击设置

2.选中账户

3.然后一直往下划,找到图片中POP3/SMTP服务,点击开启

(注意开启后会收到一个授权码,一定要好好保存,在appliction.properties配置中会用到)

在这里插入图片描述
*

二、加入依赖 和 配置application.yml文件

1.在pom.xml文件中引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

2.application.yml文件加入相关配置

代码如下(示例):

spring:
  mail:
    host: smtp.qq.com     默认平台服务地址无需更改
    username:**********@qq.com   自己邮箱号
    password: mskctkdiaevodcee    这是我们在刚刚开启POP3/SMTP服务时收到的授权码(如果忘了把服务重开一次!)default-encoding: utf-8 改编码格式
    protocol: smtp
    port:25 端口号
    properties:
      mail.smtp.socketFactory.class:javax.net.ssl.SSLSocketFactory

三 .创建Mail 控制层 和业务层

1.业务层代码

packagecn.itrip.service.mail;/**
 * 接口
 * @author liyuzhen
 */publicinterfaceMailService{/**
     * 邮件发送
     * @param to
     * @param subject
     * @param text
     * @return
     */booleansendMail(Stringto,String subject,String text);}
packagecn.itrip.service.mail;importorg.springframework.mail.MailException;importorg.springframework.mail.SimpleMailMessage;importorg.springframework.mail.javamail.JavaMailSender;importorg.springframework.stereotype.Service;/**
 * 实现类
 * @author liyuzhen
 */@ServicepublicclassMailServiceImplimplementsMailService{/**
     * springboot专门发送邮件接口
     */privatefinalJavaMailSender mailSender;privateString from;publicMailServiceImpl(JavaMailSender mailSender){this.mailSender= mailSender;}@OverridepublicbooleansendMail(Stringto,String subject,String text){SimpleMailMessage msg=newSimpleMailMessage();//发送邮件的邮箱
        msg.setFrom("******@qq.com");//发送到哪(邮箱)
        msg.setTo(to);//邮箱标题
        msg.setSubject(subject);//邮箱文本
        msg.setText(text);try{
            mailSender.send(msg);}catch(MailException ex){System.err.println(ex.getMessage());returnfalse;}returntrue;}}

2.控制层代码

/**
 * @author liyuzhen
 */@RestController@RequestMapping("/auth/api")publicclassItripAuthController{/**
		引入业务层依赖
	*/@ResourceprivateMailService mailService;@GetMapping("/*****")publicDtotest(){//在这里调用业务层代码//发送邮箱//内容你们可以用一些随机数,毫秒值做为内容,以便达到验证码的效果
        mailService.sendMail("发送到的邮箱","主题","内容:");}}

总结

本次主要了解了如何使用通过自己注册的邮箱, 给用户注册时提供验证码支持
(内容你们可以用一些随机数,毫秒值做为内容,以便达到验证码的效果)

  • 作者:就一个码农
  • 原文链接:https://blog.csdn.net/qq_52288555/article/details/121661777
    更新时间:2022-08-19 08:35:36