spring boot 发送邮件验证码

devtools/2025/3/15 3:28:28/

一、前置需求

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/devtools/167187.html

相关文章

计算机视觉|超详细!Meta视觉大模型Segment Anything(SAM)源码解剖

一、引言 在计算机视觉领域&#xff0c;图像分割是一个核心且具有挑战性的任务&#xff0c;旨在将图像中的不同物体或区域进行划分和识别&#xff0c;广泛应用于自动驾驶、医学影像分析、安防监控等领域。Segment Anything Model&#xff08;SAM&#xff09;由 Meta AI 实验室…

微信小程序面试内容整理-生命周期函数

1. 小程序生命周期函数 这些生命周期函数是在整个小程序启动、显示、隐藏、崩溃等过程中调用的。它们控制小程序的全局行为。 ● onLaunch(options) 小程序初始化时调用一次。通常在此函数中进行小程序的初始化操作,如获取用户信息、初始化设置等。

Kubernetes学习笔记-移除Nacos迁移至K8s

项目服务的配置管理和服务注册发现由原先的Nacos全面迁移到Kubernetes上。 一、移除Nacos 移除Nacos组件依赖。 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <…

使用RestTemplate发送https请求-忽略ssl证书

RestTemplate调用https服务的时候&#xff0c;由于服务方的ssl证书并非正式证书&#xff0c;不被jdk接受&#xff0c;故会报类似&#xff1a;“No subject alternative names matching IP address xxxxxx found”的错误。网上找了一下&#xff0c;处理也比较简单&#xff0c;基…

使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图

以下是使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图&#xff1a; graph TDA[开始移植] --> B[代码兼容性检查]B --> C[检查系统调用差异\nfork/exec -> CreateProcess]B --> D[检查文件路径格式\n/ vs \\]B --> E[检查依赖库兼容性\nPOSIX vs …

深度学习-145-Text2SQL之基于官方提示词模板进行交互

文章目录 1 基于sqlite1.1 数据库Chinook1.1.1 创建并载入数据1.1.2 SQLDatabase1.2 数据库中的表1.2.1 获取表的字段1.2.2 翻译字段1.3 建表语句2 操作单表2.1 大语言模型2.2 数据库连接2.3 官方提示词模板2.3.1 一般输出2.3.2 结构化输出2.4 执行SQL查询2.5 大模型整理结果2.…

什么是nginx的强缓存和协商缓存

一、强缓存&#xff08;Strong Cache&#xff09; 1. 定义 • 强缓存直接告诉浏览器&#xff1a;在缓存过期前&#xff0c;无需与服务器通信&#xff0c;直接使用本地缓存。 • 由服务器通过响应头 Cache-Control 和 Expires 控制。 2. 响应头 • Cache-Control: max-age3600表…

Pygame实现记忆拼图游戏1

1 游戏介绍 记忆拼图游戏的英文名叫做“memory puzzle”&#xff0c;玩家通过记忆找到相同的图片&#xff0c;如图1所示。 图1 记忆拼图游戏 从图1中可以看出&#xff0c;玩家每次点击两张图片&#xff0c;如果这两个图片是相同的图案&#xff08;包括颜色和形状&#xff09;…