SpringBoot发送邮箱

一、导入依赖

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

二、添加配置

application.yml文件

将username修改为自己的邮箱,password修改为自己的邮箱授权码(下面有QQ授权码的生成地址)

spring:mail:port: 465username: xxxxxx@qq.com     # 自己的邮箱或者发送人的邮箱password: xxxxxx            # 邮箱授权码host: smtp.qq.com               properties:mail:smtp:auth: falsessl:enable: truedebug: true

QQ授权码 生成地址: 账号与安全 (qq.com)

三、导入工具类

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;
​
@Component
public class SendEmailUtil {
​/*** 消息发送工具*/@Autowiredprivate JavaMailSender sender;
​/*** @param senderEmail 发送者的邮箱* @param receiverEmail 接收者的邮箱* @param messageText   消息内容*/public void send(String senderEmail, String receiverEmail, String messageText) {//  创建消息对象SimpleMailMessage message = new SimpleMailMessage();
​//设置消息相关信息//  发送者邮箱message.setFrom(senderEmail);//  消息内容message.setText(messageText);//  接收者邮箱message.setTo(receiverEmail);
​//  发送消息sender.send(message);}
​/*** @param senderEmail 发送者的邮箱* @param receiverEmail 接收者的邮箱* @param messageText  消息内容* @param subject 消息主题*/public void send(String senderEmail, String receiverEmail, String messageText,String subject) {//  创建消息对象SimpleMailMessage message = new SimpleMailMessage();
​//设置消息相关信息//  发送者message.setFrom(senderEmail);//  消息主题message.setSubject(subject);//  消息内容message.setText(messageText);//  接收者message.setTo(receiverEmail);
​//  发送消息sender.send(message);}
}

四、发送消息

在SpringBoot的测试类中发送

@Autowired
private SendEmailUtil sendEmailUtil;@Test
void sendUtil() {String senderEmail = "xxxxxx@qq.com";   //  发送者邮箱String receiverEmail = "xxxxxx@qq.com"; //  接收者邮箱String msg = "hello,编程大师!";            //  消息内容String subject = "测试springboot发送邮箱";      //  消息主题sendEmailUtil.send(senderEmail,receiverEmail,msg,subject);
}

邮箱查看消息

如:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/840268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL——DDL之数据表的操作

基础 # 每一列都要指定对应的类型 # 字符串&#xff1a;varchar(N) # 整数&#xff1a;int # 小数&#xff1a;double # 年月日&#xff1a;date # 年月日时分秒&#xff1a;datetime# 创建表 create table if not exists db_bigdata.student(stuid varchar(10),stuname varch…

[集群聊天服务器]----(四)MySQL数据库模块

上一节我们对网络模块和业务模块进行了解耦[集群聊天服务器]----(三)ChatService模块&#xff0c;解耦网络模块和业务模块&#xff0c;封装了回调函数。在项目中需要使用mysql数据库进行存储用户重要数据&#xff0c;并进行增删改查操作。&#xff0c;所以这一节我们对mysql的封…

Linux基础入门和帮助-第二篇

马哥教育 Linux SRE 学习笔记 用户登录信息查看命令 whoami: 显示当前登录有效用户 [rootrocky8 ~]$whoami rootwho: 系统当前所有的登录会话 [rootrocky8 ~]$who root pts/0 2024-05-24 12:55 (10.0.0.1)w: 系统当前所有的登录会话及所做的操作 [rootrocky8 ~]…

python对矩阵列进行操作

在Python中&#xff0c;可以使用NumPy库来对矩阵&#xff08;或称为矩阵、数组&#xff09;的列进行各种操作。以下是一些常见的列操作及其示例代码&#xff1a; import pandas as pd# 读取CSV文件 df pd.read_csv(output_file.csv, delimiter )# 对列进行求和 sum_columns …

WordPress 发布了独立的 SQLite 插件

之前 WordPress 在官方的 Performance Lab 插件实现 SQLite 模块&#xff0c;现在重构 SQLite 的实现&#xff0c;并且将其发布成一个独立的插件&#xff1a;SQLite Database Integration。 独立 SQLite 插件 最初的功能模块实现是基于 aaemnnosttv 的 wp-sqlite-db 插件修改实…

用ssh做跳板用周转服务器帮我们加速下载

假设有一台机器A&#xff0c;它从网站B下载东西很慢&#xff0c;但是有一台机器C&#xff0c;它从B下载比较快&#xff0c;它和A之间的速度也比较快&#xff0c;那么就可以在A发指令&#xff0c;通过ssh做跳板从C加速下载网站B的文件。 以下为示例命令&#xff1a; ssh 用户名…

【DevOps】Linux 下安装配置 Apache 服务器:打造你的专属 Web 平台

目录 一、准备工作 二、安装 Apache 三、启动和管理 Apache 四、验证安装 五、配置 Apache 5.1 修改网站根目录 5.2 配置虚拟主机 5.2.1 创建虚拟主机配置文件 5.2.2 创建网站目录 5.2.3 启用虚拟主机 5.2.4 重启 Apache 5.3 配置 HTTPS 5.3.1 安装 SSL 证书 5.3…

使用CyberRT写第一个代码, test ok

简介 计算框架是自动驾驶系统中的重中之重,也是整个系统得以高效稳定运行的基础。为了实时地完成感知、决策和执行,系统需要一系列的模块相互紧密配合,高效地执行任务流。由于各种原因,这些模块可能位于不同进程,也可能位于不同机器。这就要求计算框架中具有灵活的、高性…

谷歌蜘蛛池是什么?

或称为谷歌爬虫池&#xff0c;是一项专门针对谷歌搜索引擎优化&#xff08;SEO&#xff09;的先进技术&#xff0c;这种技术的主要目的是通过建立庞大的网站群体和复杂的链接结构来吸引和维持谷歌的爬虫程序的注意力&#xff0c;其核心是通过这种结构优化&#xff0c;增强特定网…

大学计算机专业三天看完《Python背记手册》全彩版,轻松学会 Python不迷路!

Python作为一门编程语言&#xff0c;Python提供了高效的高级数据结构&#xff0c;还能简单有效地面向对象编程。Python语法和动态类型&#xff0c;以及解释型语言的本质&#xff0c;使它成为多数平台上写脚本和快速开发应用的编程语言&#xff0c;随着版本的不断更新和语言新功…

Java | Leetcode Java题解之第109题有序链表转换二叉搜索树

题目&#xff1a; 题解&#xff1a; class Solution {ListNode globalHead;public TreeNode sortedListToBST(ListNode head) {globalHead head;int length getLength(head);return buildTree(0, length - 1);}public int getLength(ListNode head) {int ret 0;while (head…

20、设计模式之备忘录模式

备忘录模式 备忘录模式&#xff08;Memento Pattern&#xff09;保存一个对象的某个状态&#xff0c;以便在适当的时候恢复对象。备忘录模式属于行为型模式。 介绍 意图&#xff1a; 在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存…

【6】PostgreSQL 循环

PostgreSQL 循环 前言笔记WHILE 循环基本结构简单示例详细示例创建示例函数解释调用示例函数预期输出 FOR 循环Numeric FOR Loop基本结构简单示例详细示例创建示例函数解释调用示例函数预期输出 Reverse Numeric FOR Loop基本格式简单示例详细说明创建函数解释调用函数预期输出…

[C][字符串][字符串常用函数介绍]详细讲解

目录 0.前言1.gets2.strlen3.strcpy4.strncpy5.strcat - (效率低)6.strncat7.strcmp8.strncmp9.strstr10.strtok11.strerror12.perror(相对于strerror可能更好用)13.ctype.h14.memcpy15.memmove16.memcmp17.memset18.atoi 0.前言 本篇主要介绍处理字符和字符串的库函数的使用及…

【C语言】文件的编译链接和预处理

文件的编译链接和预处理 程序的翻译环境和执行环境翻译环境预处理&#xff08;预编译&#xff09;过程编译过程汇编过程链接过程 运行环境 预处理详解预处理符号预处理指令#define#define定义标识符#define定义宏#define替换规则 #与###的使用##的使用 带有副作用的宏参数宏与函…

软考之信息系统管理知识点(1)

信息系统管理知识点 计算机中的CPU主要由运算单元、控制单元、寄存器组和时序电路等组成&#xff1b; 运算单元是对数据进行加工的部件&#xff0c;主要完成算术运算和逻辑运算。控制单元主要是从主存取出指令进行分析&#xff0c;控制其他部件完成指令的功能。寄存器组既可以用…

超详细的前后端实战项目(Spring系列加上vue3)前端篇(二)(一步步实现+源码)

好了&#xff0c;兄弟们&#xff0c;继昨天的项目之后&#xff0c;开始继续敲前端代码&#xff0c;完成前端部分 昨天完成了全局页面的代码&#xff0c;和登录页面的代码&#xff0c;不过昨天的代码还有一些需要补充的&#xff0c;这里添加一下 内容补充&#xff1a;在调用登…

Spring (16)Spring Boot Starter是什么

Spring Boot Starter是Spring Boot的一个核心特性&#xff0c;它提供了一种快速、简便的方式来引入和管理项目依赖。通过Starters&#xff0c;开发者可以轻松地将必要的依赖集成到项目中&#xff0c;无需手动指定每个库的版本。Starters包含了一组自动配置的模板&#xff0c;这…

代码随想录算法训练营第36期DAY38

DAY38 435无重叠区间 昨晚很快就想出来了&#xff0c;今天相当于二刷。 class Solution {public: static bool mycmp(vector<int>&a,vector<int>&b){ return a[1]<b[1]; } int eraseOverlapIntervals(vector<vector<int>&g…

sql查询,直接返回json数组格式

文章目录 数据库查询&#xff0c;并且sql直接返回json格式 数据库查询&#xff0c;并且sql直接返回json格式 SELECTJSON_ARRAYAGG(JSON_OBJECT(groupId, g.id,groupName, g.NAME,groupColor, g.group_color,num, COALESCE(c.num, 0),type, g.type)) AS result FROMxbd_group g…