实现邮箱验证(邮箱验证码登录)

本文涉及的产品
性能测试 PTS,5000VUM额度
注册配置 MSE Nacos/ZooKeeper,118元/月
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 我们要实现web或者Java的发送邮箱验证码到邮箱上进行验证。当然我们需要做一下前提的准备,也就是先要导我们的jar包,然后再进行下一步的操作。

一、概要

我们要实现web或者Java的发送邮箱验证码到邮箱上进行验证。当然我们需要做一下前提的准备,也就是先要导我们的jar包,然后再进行下一步的操作。

步骤

前期的创建web、Java项目我这就不演示了,这都是很基本的操作

1、导jar包

首先我们要去找一下这几个jar

**1. activation.jar

  1. commons-email-1.4.jar
  2. mail.jar**

这三个jar包我们是需要的,我这里就不放在这里了,需要自己去下载。
下载好后我们就ctrl c/v 到我们项目的lib文件夹里面

2、开启POP3/SMTP/IMAP服务

我们光导jar包是没用的,我们需要进去我们的邮箱开启我们的POP3/SMTP/IMAP服务,我们就用常用的网易、QQ邮箱做示例:

1、网易点击这里进入设置

在这里插入图片描述
QQ邮箱的,点击上面的设置,进入这个页面,然后点击账户
在这里插入图片描述

2、然后开启服务

网易这里我就不开启了,我用的QQ邮箱,你们在这里开启就行了,都是一样的操作
在这里插入图片描述

QQ往下滑,找到POP3/SMTP/IMAP服务,然后开启它就行了
在这里插入图片描述
开启服务后会有一个授权码这个是后面要用到的,要记住了

3、写方法

接近到最后一步,写方法。我这里写好了

/**
     * 邮箱验证,返回一个验证码,后面需要进行验证
     * 
     * @param email
     *            需要发送的邮箱
     */
    public String sendAuthCodeEmail(String email) {
   
   
        // 实例化随机
        Random rd = new Random();
        // 实例化一个一个string数组
        String[] strings = new String[] {
   
    "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "q", "w", "e", "r", "t",
                "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m",
                "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X",
                "C", "V", "B", "N", "M" };
        // 定义一个变量接受,0~9 24个英文字母大小写 随机四个
        String authCode = "";
        for (int i = 0; i < 4; i++) {
   
   
            int sj = rd.nextInt(strings.length);
            authCode += strings[sj];
        }

        String string = null;
        try {
   
   
            // 实例化--SimpleEmail--一样的方法,只是实例化不同
            //如果想发网页样式的实例化这个就行了--HtmlEmail
            SimpleEmail mail = new SimpleEmail();
            mail.setHostName("smtp.qq.com");// 服务器--网易smtp.163.com
            mail.setAuthentication("xxx@qq.com", "xxx");//第一个是你开启服务的邮箱号,第二个是你开启服务后给你的授权码
            mail.setFrom("xxx@qq.com", "某某官网"); // 发送邮件人和发件人名
            mail.setSSLOnConnect(true); // 使用安全链接
            mail.addTo(email);// 接收的邮箱--收件人--也就是你要把验证码或者信息发给谁
            // 设置邮件的内容
            mail.setSubject("验证码");// 设置邮件的主题
            // 内容:正文
            mail.setMsg("<h1 align='center'>尊敬的用户,您好!</h1>\n<b>" + authCode + "</b>(有效验证码为1分钟)");
            mail.setCharset("utf-8");// 设置编码
            mail.setSentDate(new Date());// 发送时间
            string = mail.send();// 发送
        } catch (Exception e) {
   
   
            e.printStackTrace();
        }
        return string;
    }

最后就是一个调用方法就行了,这些都是可以根据自己的情况改进的,想发什么内容也是可以修改的。

我的分享就到这里了。

相关文章
|
6月前
|
存储 JSON JavaScript
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)-1
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)
179 0
|
6月前
|
前端开发 安全 Java
SpringBoot 实现登录验证码(附集成SpringSecurity)
SpringBoot 实现登录验证码(附集成SpringSecurity)
396 0
|
3月前
|
存储 NoSQL 数据库
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
这篇文章讲述了在分布式微服务系统中添加用户注册和登录功能的过程,重点介绍了用户注册时通过远程服务调用第三方服务获取短信验证码、使用Redis进行验证码校验、对密码进行MD5加密后存储到数据库,以及用户登录时的远程服务调用和密码匹配校验的实现细节。
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
|
1月前
|
Java
Java 登录输入的验证码
Java 登录输入的验证码
22 1
|
1月前
|
C#
C# 图形验证码实现登录校验代码
C# 图形验证码实现登录校验代码
72 2
|
2月前
|
存储 JSON 前端开发
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
本文介绍了在Node.js中使用token实现前端验证码和登录功能的详细流程,包括生成验证码、账号密码验证以及token验证和过期处理。
43 0
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
|
3月前
|
资源调度 JavaScript API
nest.js + sms 实现短信验证码登录
本文介绍了在Nest.js框架中集成短信验证码登录的实现方案,详细阐述了使用阿里云短信服务的配置流程、资质申请、短信模板设置,并提供了API调用示例和工程代码的运行步骤。
nest.js + sms 实现短信验证码登录
|
3月前
【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?
【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?
|
6月前
|
安全 Java 数据库
SpringSecurity实现多种登录方式,如邮件验证码、电话号码登录
SpringSecurity实现多种登录方式,如邮件验证码、电话号码登录
1143 2
|
6月前
|
缓存 算法 NoSQL
短信验证码登录接口,如何防止恶意攻击
该文讨论了移动应用中常见的手机短信验证码登录(短验登录)的安全设计。后端通常需要提供获取短信验证码和手机短验登录两个API。为了增强机短验登录API的安全性,提出了几种无需依赖Redis等存储介质的方案:1)使用数字签名确保请求合法性;2)基于时间戳的验证,允许在一定时间范围内有效;3)应用TOTP算法生成动态码进行验证;4)利用JWTToken进行身份验证并设置有效期。文章强调了创新思考在解决安全问题中的重要性,并鼓励读者分享更多方案。
559 1