Springboot实现邮箱验证代码实例

 更新时间:2024年01月04日 09:55:53   作者:时间不会赖着不走  
这篇文章主要介绍了Springboot实现邮箱验证代码实例,在一些业务需求中我们经常需要使用邮箱进行验证码的收取,本文通过简单的代码实例来说明,需要的朋友可以参考下

Springboot邮箱验证

准备工作

首先需要开启邮箱第三方支持以及获取授权码

以QQ邮箱为例:

QQ邮箱设置——账户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IDOFfzkY-1676769912092)(bussiness.assets/image-20230219090145002.jpg)]

开启POP3/SMTP服务——完成验证后获得授权码,保存授权码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R428vck5-1676769912094)(bussiness.assets/image-20230219090242065.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5mkxpvRK-1676769912096)(bussiness.assets/image-20230219090257866.jpg)]

1.导入依赖

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

2.然后在项目的application.yml

spring:
  mail:
    username: 你的QQ邮箱
    password: 你的授权码
    host: smtp.qq.com
    properties:
      mail.smtp.ssl.enable: true

3.编写测试方法进行测试

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ShopsApplicationTests {
    @Autowired
    JavaMailSenderImpl mailSender;
    @Test
    public void contextLoads() throws MessagingException {
        int count = 1;//默认发送一次
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        while (count-- != 0) {
            String codeNum = "";
            int[] code = new int[3];
            Random random = new Random();
            //自动生成验证码
            for (int i = 0; i < 6; i++) {
                int num = random.nextInt(10) + 48;
                int uppercase = random.nextInt(26) + 65;
                int lowercase = random.nextInt(26) + 97;
                code[0] = num;
                code[1] = uppercase;
                code[2] = lowercase;
                codeNum += (char) code[random.nextInt(3)];
            }
            //标题
            helper.setSubject("您的验证码为:" + codeNum);
            //内容
            helper.setText("您好!,感谢支持小站。您的验证码为:" + "<h2>" + codeNum + "</h2>" + "千万不能告诉别人哦!", true);
            //邮件接收者
            helper.setTo("123456789@qq.com");
            //邮件发送者,必须和配置文件里的一样,不然授权码匹配不上
            helper.setFrom("987654321@qq.com");
            mailSender.send(mimeMessage);
        }
    }

测试结果

在这里插入图片描述

到此这篇关于Springboot实现邮箱验证代码实例的文章就介绍到这了,更多相关Springboot邮箱验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • jdbc连接数据库实例详解

    jdbc连接数据库实例详解

    在本篇内容里小编给大家分享了关于jdbc如何连接数据库的相关知识点内容,需要的朋友们学习下。
    2019-02-02
  • 解决maven父子工程install的时候排除某些子模块,让子模块不install问题

    解决maven父子工程install的时候排除某些子模块,让子模块不install问题

    在Maven父子工程中,如果希望某个子模块不被安装到本地仓库,可以在该子模块的`pom.xml`文件中添加以下配置: ```xml ... org.apache.maven.plugins maven-install-plugin 2.5.2 true
    2024-12-12
  • MyBatis接口绑定的实现方式和工作原理

    MyBatis接口绑定的实现方式和工作原理

    在日常开发中,数据持久层是几乎每个项目都会涉及的一个关键组成部分,MyBatis作为一个流行的持久层框架,其提供的接口绑定机制极大地简化了数据库操作,本文将通过详细的代码示例和讲解,带你深入理解MyBatis接口绑定的工作原理和实践方式,需要的朋友可以参考下
    2024-03-03
  • Java实现图像分割功能

    Java实现图像分割功能

    这篇文章主要为大家详细介绍了Java实现图像分割功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 一种类似JAVA线程池的C++线程池实现方法

    一种类似JAVA线程池的C++线程池实现方法

    线程池(thread pool)是一种线程使用模式。线程过多或者频繁创建和销毁线程会带来调度开销,进而影响缓存局部性和整体性能。这篇文章主要介绍了一种类似JAVA线程池的C++线程池实现方法,需要的朋友可以参考下
    2019-07-07
  • 详解Java常用工具类—泛型

    详解Java常用工具类—泛型

    这篇文章主要介绍了Java常用工具类—泛型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Spring Boot REST国际化的实现代码

    Spring Boot REST国际化的实现代码

    本文我们将讨论如何在现有的Spring Boot项目中添加国际化。只需几个简单的步骤即可实现Spring Boot应用的国际化,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • java实现轻轻松松控制台斗地主的示例代码

    java实现轻轻松松控制台斗地主的示例代码

    这篇文章主要介绍了java实现轻轻松松控制台斗地主,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java基于Semaphore构建阻塞对象池

    Java基于Semaphore构建阻塞对象池

    这篇文章主要介绍了Java基于Semaphore构建阻塞对象池,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 一文详解如何在Java Maven项目中使用JUnit 5进行测试

    一文详解如何在Java Maven项目中使用JUnit 5进行测试

    这篇文章主要介绍了如何在Java Maven项目中使用JUnit 5进行测试的相关资料,JUnit5是一个流行的Java测试框架,它涵盖了JUnit5的概述、环境配置、编写测试用例、运行测试、高级特性和最佳实践,需要的朋友可以参考下
    2025-04-04

最新评论