SpringBoot集成163邮箱进行验证码校验

1、导入依赖

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

2、配置文件(yml格式)

spring:
  mail:
    # 邮件服务地址
    host: smtp.163.com
    # 端口  465/994/25
    port: 25
    # 编码格式
    default-encoding: UTF-8
    # 用户名
    username: 邮箱@163.com
    # 协议
    protocol: smtp
    # 客户端授权码
    password: 授权码
    # 其它参数
    properties:
      mail:
        debug: true
        smtp:
          auth: true

3、验证码生成工具

import java.util.Random;

public class ValidateCodeUtils {
    /**
     * 随机生成验证码
     * @param length 长度为4位或者6位
     * @return
     */
    public static Integer generateValidateCode(int length){
        Integer code =null;
        if(length == 4){
            code = new Random().nextInt(9999);//生成随机数,最大为9999
            if(code < 1000){
                code = code + 1000;//保证随机数为4位数字
            }
        }else if(length == 6){
            code = new Random().nextInt(999999);//生成随机数,最大为999999
            if(code < 100000){
                code = code + 100000;//保证随机数为6位数字
            }
        }else{
            throw new RuntimeException("只能生成4位或6位数字验证码");
        }
        return code;
    }

    /**
     * 随机生成指定长度字符串验证码
     * @param length 长度
     * @return
     */
    public static String generateValidateCode4String(int length){
        Random rdm = new Random();
        String hash1 = Integer.toHexString(rdm.nextInt());
        String capstr = hash1.substring(0, length);
        return capstr;
    }


}

4、实现类

@RestController
@RequestMapping("/auth/user")
@CrossOrigin
@Slf4j
public class LoginController {
    @Autowired
    private JavaMailSender mailSender;


    @GetMapping("/sendMsg")
    public R sendMsg(String Email){
        String code = ValidateCodeUtils.generateValidateCode(4).toString();
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("你的邮箱");
        message.setTo(Email);
        message.setSubject("短信验证");
        message.setText("您的验证码为:" + code + ",请勿泄露给他人。");
        try {
            mailSender.send(message);
            log.info("send success.................");
        } catch (Exception e) {
            log.error("异常", e);
        }

        return R.ok(code);
    }

5、测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值