java实现发送验证码通过qq邮箱方式

前期准备

要想实现qq邮箱发送,我们就要开启该服务,获得授权。

1、打开qq邮箱来的账户与安全页面。

2、来到账户与安全页面后,进入安全设置。

3、找到SMTP/IMAP服务,我们开启服务。

4、开启服务后,我们会获得一个授权码,保存好该授权码,在Java程序中我们会对其进行一个配置。

在Java中进行一个配置(这里我是以springboot框架中的示例)

1、先对application.yml中进行配置,最主要的是我们要注意配置参数的层级关系,千万不能出错,因为我第一次进行配置时就是层级关系出错了,走了许多弯路。

复制代码
spring:
    mail:
     host: smtp.qq.com
     port: 465   # 使用SSL连接的端口
     username: 发送方的请求账号  # 确保使用完整的邮箱地址
     password: 自己的授权码 # 授权码
     default-encoding: utf-8
     properties:
       mail:
         smtp:
           auth: true
           ssl:
            enable: true  # 启用SSL
           starttls:
            enable: true
            required: true

2、接下来就是在需要的地方写代码

首先注入一个JavaMailSender对象

复制代码
@Autowired
    private JavaMailSender mailSender;

下面实现发送的代码

复制代码
 //2.向邮箱发送验证码(集成邮件功能
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("发送的qq邮箱");//发送的qq邮箱
        message.setTo("接收邮箱的qq");//接收邮件的qq邮箱
        message.setSubject("主题:注册验证码");
        //随机生成6位数字验证码
        Random random = new Random();
        int randomNum = random.nextInt(1000000);
        String randomCode = String.format("%06d", randomNum);
        System.out.println(randomNum);
        message.setText(randomCode);
        mailSender.send(message);//发送邮件

下面时整体代码,使用时调用代码即可

复制代码
package com.ffyc.news.util;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;

import java.util.Random;
import java.util.concurrent.TimeUnit;

/*
发送qq邮箱
 */
@Component
public class SendEmailUtil {
    @Autowired
    private JavaMailSender mailSender;

   

    public  void sendEmail(String account){
        System.out.println(account);
        //2.向邮箱发送验证码(集成邮件功能
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("发送的qq邮箱");//发送的qq邮箱
        message.setTo(account);//接收邮件的qq邮箱
        message.setSubject("主题:注册验证码");
        //随机生成6位数字验证码
        Random random = new Random();
        int randomNum = random.nextInt(1000000);
        String randomCode = String.format("%06d", randomNum);
        System.out.println(randomNum);
        message.setText(randomCode);
        mailSender.send(message);//发送邮件
       
    }
}
相关推荐
社交怪人1 分钟前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言
阿维的博客日记4 分钟前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI5 分钟前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
郭涤生42 分钟前
不同主机之间网络通信-以太网连接复习
开发语言·rk3588
山居秋暝LS1 小时前
【无标题】RTX00安装paddle OCR,win11不能装最新的,也不能用GPU
开发语言·r语言
卢锡荣1 小时前
单芯通吃,盲插标杆 —— 乐得瑞 LDR6020,Type‑C 全场景互联 “智慧芯”
c语言·开发语言·计算机外设
Xin_ye100861 小时前
C# 零基础到精通教程 - 第七章:面向对象编程(入门)——类与对象
开发语言·c#
辰海Coding1 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
AI科技星1 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
小小编程路1 小时前
C++ 多线程与并发
java·jvm·c++