瑞吉外卖qq邮箱验证码登录

一、开启 POP3/SMTP服务 获得的授权码

进入qq邮箱
在这里插入图片描述
没有开启服务要选择开启,开启了的话需要点击管理服务,
在这里插入图片描述

进入管理服务的安全设置点击生成授权码
在这里插入图片描述
微信扫码短信验证
![在这里插入图片描述](https://img-blog.csdnimg.cn/ac0ba5308a4d4d9f8bf28d0ee3a6c97d.png

然后需要你保存好这个授权码后面要用

二、前端登录界面拦截器修改

修改提示
在这里插入图片描述
修改邮箱匹配正则表达式
在这里插入图片描述

三、修改pom.xml和application.yml

  1. pom.xml
<!-- 邮件服务 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- Thymeleaf -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

  1. application.yml
# 邮箱配置
  mail:
    host: smtp.qq.com  
    username: [1312831081@qq.com] # 开启IMAP/SMTP服务对应qq邮箱的账号
    password: [qewrgszdg] # 前面开启 IMAP/SMTP服务获得的授权码
    default-encoding: UTF-8

二、后端接口修改

  1. controller

    @PostMapping("/sendMsg")
    public R<String> sendMsg(@RequestBody User user, HttpSession session) {
        // 获取邮箱账号
        String phone = user.getPhone();

        String subject = "瑞吉外卖登录验证码";

        if (StringUtils.isNotEmpty(phone)) {
            String code = ValidateCodeUtils.generateValidateCode(4).toString();
            String context = "登录验证码为: " + code + ",五分钟内有效!";
            log.info("code={}", code);

            // 发送邮箱验证码
            userService.sendMsg(phone, subject, context);

            // 验证码缓存到Redis中,有效时间为 5分钟
            redisTemplate.opsForValue().set(phone, code, 5, TimeUnit.MINUTES);

            return R.success("验证码发送成功!");
        }
        return R.error("验证码发送失败,请重新输入!");
    }
  1. Service

void sendMsg(String to,String subject,String context);

  1. ServiceImpl
@Value("${spring.mail.username}")
private String from;   // 邮件发送账号对应yml文件,即开启IMAP/SMTP服务对应qq邮箱的账号

@Autowired
private JavaMailSender mailSender;

@Override
public void sendMsg(String to, String subject, String context) {
    SimpleMailMessage mailMessage = new SimpleMailMessage();

    mailMessage.setFrom(from);
    mailMessage.setTo(to);
    mailMessage.setSubject(subject);
    mailMessage.setText(context);
    
    mailSender.send(mailMessage);
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值