使用QQ邮箱进行登录验证

使用场景不多说,接下来直接看实现~

登录到QQ邮箱,进入设置

打开IMAP/SMTP服务,记得把授权码记录下来,后面配置文件中需要用到

新建application的配置文件


spring:
  mail:
    # 指定邮件服务器地址
    host: smtp.qq.com
    username: 你自己的qq邮箱
#    授权码
    password: QQ邮箱上获取的授权码信息
#    端口
    port: 465
#    默认编码
    default-encoding: UTF-8
#    使用协议
    protocol: smtps
#    其他属性
    properties:
      "mail.smtp.connectiontimeout": 5000
      "mail.smtp.timeout": 3000
      "mail.smtp.writetimeout": 5000
      "mail.smtp.auth": true
      "mail.smtp.starttls.enable": true
      "mail.smtp.starttls.required": true

先创建一个随机生成验证码的方法

package com.yinan.util;


//随机生成6位邮箱验证码
public class EmailRandomUtil {
    public static String randomNumBuilder(){
        String result="";
        for(int i=0;i<6;i++){
            result+=Math.round(Math.random()*9);
        }
        return result;
    }
}

 接下来实现具体验证逻辑,我这里只做了简单的验证码认证 

public SaResult sendEmailToUser(HttpServletRequest request, String email) throws Exception {
        //        创建一个邮件消息
        MimeMessage message = javaMailSender.createMimeMessage();
//        创建 MimeMessageHelper 对象,第二个 boolean 参数表示,是否是一个 Multipart 邮件(带有附件)。
        MimeMessageHelper helper = new MimeMessageHelper(message, false);
//        发件人邮箱和名称
        helper.setFrom(emailUserName, "鹿灵");
        helper.setTo(email);
//        邮件标题
        helper.setSubject("这是银氨发送给您的登录验证码信息");
        try {
            String ip = request.getRemoteAddr();
//            生成验证码
            String code = EmailRandomUtil.randomNumBuilder();
            //        邮件正文
            helper.setText("您的验证码信息为:<strong>" + code + "</strong>,当前验证码有效时长为<strong>5分钟</strong>,请尽快进行登录验证,如非本人操作,请忽视!", true);
            System.out.println(code);
            ValueOperations<String, String> forValue = redisTemplate.opsForValue();
//将验证码信息存放在redis中,设置过期时间为5分钟后过期            
forValue.set(ip + "_code_"+email, code, 5, TimeUnit.MINUTES);
            //        发送
            javaMailSender.send(message);
            return SaResult.ok("邮件发送成功,ip信息为:" + ip);
        } catch (Exception e) {
            e.printStackTrace();
            return SaResult.error("发送失败");
        }

    }

以上代码均做有注释,各位可以看看,直接copy也可以,我获取的验证码信息是存在redis中的,所以记得要开redis

以下是redis的配置

  #  redis配置
  redis:
    #    redis数据库索引
    database: 0
    #    redis服务器地址
    host: localhost
    #    redis服务器连接端口
    port: 6379
    #    redis服务器连接密码
    password: 123
    #        连接超时时间(毫秒)
    timeout: 10s
    lettuce:
      pool:
        # 连接池最大连接数
        max-active: 200
        # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
        # 连接池中的最大空闲连接
        max-idle: 10
        # 连接池中的最小空闲连接
        min-idle: 0

运行后就可以看到你的邮箱中有验证码信息啦~

 以上就是所有功能的实现啦~

 

 

 

### 回答1: 要使用QQ邮箱进行黑马瑞吉外卖移动端验证码登录,您需要按照以下步骤进行操作。 首先,在黑马瑞吉外卖移动应用程序中选择使用验证码登录选项。 然后,系统会要求您输入您的手机号码。请输入与您的QQ邮箱绑定的手机号码。 接下来,系统将会向您的QQ邮箱发送一封包含验证码的电子邮件。请在移动应用程序中等待几秒钟,确保您的QQ邮箱可以收到邮件。 打开您的QQ邮箱,并查找名为“黑马瑞吉外卖验证码”的邮件。请注意,有时候邮件可能会被归类到垃圾邮件或其他文件夹中,请确保您检查所有文件夹。 在邮件中,您将找到一个验证码。将该验证码复制,并返回到黑马瑞吉外卖移动应用程序。 在应用程序中,粘贴您刚才复制的验证码,并点击“确认”按钮。 系统将根据您输入的验证码验证您的身份。如果验证码输入正确,您将成功登录黑马瑞吉外卖移动应用程序。 请注意,验证码一般在发送后几分钟内失效。如果您在一定时间内没有收到邮件或验证码已失效,请尝试重新请求或重新发送验证码。 这样,您就可以使用您的QQ邮箱进行黑马瑞吉外卖移动端验证码登录了。如果您遇到任何问题,请及时联系黑马瑞吉外卖的客户支持。 ### 回答2: 黑马瑞吉外卖是一家提供外卖服务的公司,为了提高用户的账户安全性,他们在移动端推出了验证码登录功能。用户可以选择使用qq邮箱进行验证码登录。 用户在移动端打开黑马瑞吉外卖的应用后,选择登录界面,并选择验证码登录选项。接下来,用户需要点击“使用qq邮箱登录”的按钮。 在点击按钮后,应用会要求用户输入他们的qq邮箱地址。用户需要输入正确的邮箱地址,并点击确认。系统会验证邮箱是否存在以及是否正确。 验证通过后,系统会向用户的qq邮箱发送一封邮件,邮件中包含一个验证码。用户需要打开邮箱,找到这封邮件,复制验证码并返回外卖应用。 用户需要粘贴该验证码,并点击确认。系统会对验证码进行验证,如果验证码正确,用户将成功登录外卖应用,并可开始使用各种功能。 通过验证码登录的方式,账户的安全性得到了提高。因为只有用户本人能够收到并使用qq邮箱中的验证码,在他人无法猜测的情况下,他人无法登录用户的账户。 同时,使用qq邮箱登录还具有方便性。许多用户已经有自己的qq邮箱,不需要再注册新的账户,可以直接使用已有的qq邮箱进行登录,省去了注册的时间和麻烦。 总之,黑马瑞吉外卖的移动端验证码登录使用qq邮箱的功能保证了用户账户的安全性,同时也提供了便利的登录方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

银氨溶液

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值