当前位置: 首页 > news >正文

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

前期准备

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

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

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

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

 

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

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

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

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

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

首先注入一个JavaMailSender对象

@Autowiredprivate 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 {@Autowiredprivate 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);//发送邮件}
}


http://www.mrgr.cn/news/47717.html

相关文章:

  • 初学stm32 --- ADC单通道采集
  • socket网络编程-TC/IP方式
  • 左神算法基础巩固--5
  • 两种方式实现Kepware与PLC之间的心跳检测
  • LabVIEW水轮发电机组振动摆度故障诊断
  • 爬虫学习心得
  • ARM编程四--->中断编写流程
  • 数据的存储之整型与浮点型数据在内存中的存储方法
  • PyEcharts教程(004):Faker介绍
  • 高校党费收缴系统小程序的设计
  • 【高性能群集部署技术】HAProxy
  • 【linux 多进程并发】0201 Linux进程fork内存空间,父子进程变量内存地址居然是一样的
  • Vue CLI 创建项目
  • 春意盎然:Spring Boot课程答疑系统
  • 20241011软考架构-------软考216-220答案解析
  • 如何获取商品详情:发送HTTP请求的指南
  • 删除 Word 空白页的 3 种方法总结
  • Mycat引领MySQL分布式部署新纪元:性能与扩展性的双重飞跃
  • 楼顶上的建筑奇迹:气膜体育馆的独特优势—轻空间
  • 基于STM32的智能门锁
  • 为什么人工智能用 Python?
  • JAVA学习-练习试用Java实现“二叉树的层序遍历”
  • 【靶点Talk】为什么联合用药喜欢用VEGF+VEGFR?
  • 基恩士PLC数据 转profinet IO项目案例
  • 【加密社】私钥碰撞器原理及工作展示
  • 如何看待诺贝尔物理学奖颁给了机器学习与神经网络?