spring boot 发送邮件验证码

news/2025/3/14 17:11:06/

一、前置需求

1、准备邮箱
2、登录授权码
qq邮箱在–>设置–>账号POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开启服务

二、发送邮件

1、简单邮件
包含邮件标题、邮件正文
2、引入mail启动器

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

3、mail参数配置
application.yml

mail:username: User@qq.com				#填写邮箱地址password: 123456					#填写授权码host: smtp.qq.com					#发送邮件的host

4、API
JavaMailSender:发送邮件的客户端
send(mail)
SimpleMailMessage:分装简单的邮件的Bean
setSubject(标题)
setText(正文)
setTo(收件地址)
setFrom(发件地址)

@Service
public class SendEmailCodeService {//发送邮件验证码public static void sendEmailCode(JavaMailSender mailSender, String email, String subject, String code) throws MailSendException {//TODO: 发送邮件验证码SimpleMailMessage message = new SimpleMailMessage(); //创建SimpleMailMessage对象message.setFrom("User@qq.com"); //设置发件人message.setSubject(subject); //设置邮件主题message.setText("您的验证码为:" + code); //设置邮件内容message.setTo(email); //设置收件人邮箱mailSender.send(message); //发送邮件}
}

我配置的是qq邮箱,发送邮件时报错:
在这里插入图片描述
经过查询:解决方法配置application.yml
发送邮件:530 Login fail. A secure connection is requiered(such as ssl)

在这里插入图片描述
发送成功
在这里插入图片描述

三、复杂邮件

1、复杂邮件有更加丰富的内容,如:图片、链接、附件等
2、API
JavaMailSender:发送邮件的客户端
send(mail)
MimeMessage:封装复杂邮件的Bean
send.createMimeMessage()
MimeMessageHelper:设置复杂邮件的辅助工具
setSubject(标题)
setText(正文,escapeHtml)
setTo(收件地址)
setFrom(发件地址)
addAttachment(fileName,file)


http://www.ppmy.cn/news/1579109.html

相关文章

PyTorch深度学习框架进阶学习计划 - 第21天:自然语言处理基础

PyTorch深度学习框架进阶学习计划 - 第21天 自然语言处理基础 今天我们将深入学习自然语言处理(NLP)的基础概念&#xff0c;重点关注词嵌入技术、序列建模原理以及主流模型之间的区别和优缺点。通过理解这些基础知识&#xff0c;你将能够更好地应用PyTorch构建NLP应用。 1. …

【零基础入门unity游戏开发——unity3D篇】3D物理系统之 —— 3D刚体组件Rigidbody

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…

AD9850函数信号发生器制作(全套资料)

资料下载地址&#xff1a;AD9850函数信号发生器制作&#xff08;全套资料&#xff09; 摘要 本系统基于直接数字频率合成&#xff08;DDS&#xff09;技术&#xff0c;系统以Luminary Micro公司的Stellaris系列的ARM1138为控制核心平台&#xff0c;配合DAC电路&#xff0c;设…

【RabbitMQ】rabbitmq在spring boot中的使用

rabbitmq官网地址&#xff1a;https://www.rabbitmq.com/tutorials 下面介绍rabbitmq官网中七种使用方式在spring boot中如何使用 下面是基于 Spring Boot 使用 RabbitMQ 实现这七种模式的示例代码。假设已经引入了以下依赖&#xff1a; Maven 依赖 <dependency><g…

Centos离线安装openssl-devel

文章目录 Centos离线安装openssl-devel1. openssl-devel是什么&#xff1f;2. openssl-devel下载地址3. openssl-devel安装4. 安装结果验证 Centos离线安装openssl-devel 1. openssl-devel是什么&#xff1f; openssl-devel 是 Linux 系统中与 OpenSSL 加密库相关的开发包&…

【最佳实践】Go 责任链模式实现参数校验

这里我们使用责任链模式来创建一个参数校验的示例。在这个示例中&#xff0c;我们将实现一个简单的责任链来校验不同的参数条件。这种模式允许我们将多个校验步骤串联在一起&#xff0c;以便可以在不同的条件下进行灵活的校验。 设计思路 接口定义 (Validator) 目的&#xff1…

React hook钩子性能优化Hooks的面试常考题目

根据,提到了常用的Hooks有useState、useEffect、useContext、useReducer、useCallback、useMemo、useRef,还有其他如useLayoutEffect和useImperativeHandle。和也提到了类似的Hooks,并且强调了useEffect的重要性。详细解释了useState、useEffect、useMemo和useCallback的区别…

计算机视觉领域开源数据集资源整理

1. 目标检测数据集 1.1 COCO2017 数据集 COCO2017 是 2017 年发布的 COCO 数据集的一个版本&#xff0c;主要用于 COCO 在 2017 年后持有的物体检测任务、关键点检测任务和全景分割任务。 1.2 火焰和烟雾图像数据集 数据集链接&#xff1a;http://m6z.cn/6fzn0f 该数据集由…