springboot整合邮箱验证

前提条件

我用的是163邮箱,优先需要授权码,如何开启授权码请参考链接

https://note.youdao.com/ynoteshare/index.html?id=f9fef46114fb922b45460f4f55d96853&type=note&_time=1652348989465

1.先上pom依赖

<!--    邮箱依赖-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>

2.在yml设置

spring:
  mail:
    host: smtp.163.com
    default-encoding: utf-8
    password: 授权码
    username: 自己的163邮箱
    properties:
      mail:
        smtp:
          ssl: enable=true

 3.新建一个MailController.java文件

@RestController
public class MailController {
    @Value("${spring.mail.username}")
    private  String from;

    @Autowired
    private JavaMailSender mailSender;


    @RequestMapping("/sendmail")
    public boolean sendMimeMail(String email, HttpSession httpSession) {
        try {
            //声明一个邮件发送请求
            SimpleMailMessage mailMessage=new SimpleMailMessage();
            //调用6位随机数随机数
            String code = randomCode();
            //将随机数放入Session中
            httpSession.setAttribute("email","要发送到的邮箱");
            httpSession.setAttribute("code",code);
            //邮件验证消息
            mailMessage.setSubject("邮件验证消息");
            //收到的验证码
            mailMessage.setText("收到的验证码:"+code);
            //发给谁
            mailMessage.setTo("要发送到的邮箱");
            //从哪发
            mailMessage.setFrom(from);
            //发送
            mailSender.send(mailMessage);
            return  true;
        }catch (Exception e){
            e.printStackTrace();
            return  false;
        }
    }

    //6位验证码
    public String randomCode(){
        StringBuilder stringBuilder = new StringBuilder();
        Random random=new Random();
        for (int i=0;i<6;i++){
            //从0-9中随机数
            stringBuilder.append(random.nextInt(10));
        }
        return stringBuilder.toString();
    }

}

4.调用接口

 

5.我是发送到QQ邮箱

 即可大功告成!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值