使用 Spring Boot 实现邮件发送功能

推荐一个AI网站,免费使用豆包AI模型,快去白嫖👉海鲸AI

SpringBoot——发送邮件

在现代应用程序中,发送邮件是一个常见的需求。本文将介绍如何使用 Spring Boot 发送邮件。我们将从新建一个 Spring Boot 项目开始,逐步配置项目,并编写代码实现邮件发送功能。

新建一个 Spring Boot 项目

首先,我们需要创建一个新的 Spring Boot 项目。你可以使用 Spring Initializr 或者你的 IDE 来创建项目。确保选择以下依赖项:

  • Spring Web
  • Spring Boot DevTools
  • Spring Boot Starter Mail

pom.xml

在创建好项目后,打开 pom.xml 文件,确保包含以下依赖项:

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

application.properties

接下来,我们需要在 application.properties 文件中配置邮件服务器的相关信息。以下是一个示例配置:

spring.mail.host=smtp.example.com
spring.mail.port=587
spring.mail.username=your-email@example.com
spring.mail.password=your-email-password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

请将 smtp.example.comyour-email@example.comyour-email-password 替换为你实际使用的邮件服务器地址、邮箱地址和密码。

SpringEmailService

现在,我们创建一个服务类 SpringEmailService 来处理邮件发送的逻辑。

package com.example.springemail;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;@Service
public class SpringEmailService {@Autowiredprivate JavaMailSender mailSender;public void sendSimpleEmail(String to, String subject, String text) {SimpleMailMessage message = new SimpleMailMessage();message.setTo(to);message.setSubject(subject);message.setText(text);message.setFrom("your-email@example.com");mailSender.send(message);}
}

在这个类中,我们使用 JavaMailSender 来发送简单的文本邮件。sendSimpleEmail 方法接受收件人地址、邮件主题和邮件内容作为参数。

SpringbootJavaMailApplication

接下来,我们在 SpringbootJavaMailApplication 类中编写一个简单的控制器,来触发邮件发送。

package com.example.springemail;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringbootJavaMailApplication {public static void main(String[] args) {SpringApplication.run(SpringbootJavaMailApplication.class, args);}
}@RestController
class EmailController {@Autowiredprivate SpringEmailService emailService;@GetMapping("/sendEmail")public String sendEmail(@RequestParam String to, @RequestParam String subject, @RequestParam String text) {emailService.sendSimpleEmail(to, subject, text);return "Email sent successfully";}
}

在这个示例中,我们创建了一个简单的 REST 控制器 EmailController,它包含一个 /sendEmail 端点。通过访问这个端点并传递必要的参数,我们可以发送邮件。

项目总结

在本文中,我们介绍了如何使用 Spring Boot 发送邮件。我们从新建项目开始,配置了 pom.xmlapplication.properties 文件,编写了 SpringEmailService 服务类,并在 SpringbootJavaMailApplication 中创建了一个简单的控制器来触发邮件发送。

通过这些步骤,你可以轻松地在 Spring Boot 项目中实现邮件发送功能。希望这篇文章对你有所帮助!

推荐一个AI网站,免费使用豆包AI模型,快去白嫖👉海鲸AI

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

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

相关文章

3dmax渲染经常卡主?关掉光追即可流畅渲染

3ds Max是一款广泛应用于三维建模、动画和渲染的软件&#xff0c;它在影视、游戏、建筑可视化等领域具有重要地位。在3ds Max中&#xff0c;渲染技术的选择和应用直接影响到最终图像的质量和渲染效率。 但在实际使用过程中&#xff0c;由于3dsMax中有太多选项&#xff0c;很多…

# 解决 win11 连接共享打印机,报错 0x00000709 问题

解决 win11 连接共享打印机&#xff0c;报错 0x00000709 问题 一、问题描述&#xff1a; 当我们连接一台共享打印机&#xff0c;出现报错 0x00000709 时&#xff0c;这是由于本机注册表本配置 RPC 远程调用&#xff0c;我们需要对自己的电脑进行修改&#xff0c;而不是主机&a…

什么是 ISP 代理?

代理是路由互联网流量的中间服务器&#xff0c;通常分为三类&#xff1a;数据中心、住宅和 ISP。根据定义&#xff0c;ISP 代理隶属于互联网服务提供商&#xff0c;但实际上&#xff0c;更容易将它们视为数据中心和住宅代理的组合。 让我们仔细研究一下 ISP 代理&#xff0c;看…

国产操作系统上部署SVN版本控制系统

原文链接&#xff1a;国产操作系统上部署SVN版本控制系统 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在国产操作系统上部署SVN版本控制系统的文章。SVN&#xff08;Subversion&#xff09;是一款广泛使用的版本控制系统&#xff0c;它…

【一步一步了解Java系列】:类与对象的联系

看到这句话的时候证明&#xff1a;此刻你我都在努力加油陌生人个人主页&#xff1a;Gu Gu Study专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xff1a;小闭 对…

真实故障分享,H3C ER3208G3-X路由器-双绞线一闪一停

六类非屏蔽双绞线 网线钳 如上图所示&#xff0c;2号线接到h3c路由器出现网线一闪一停&#xff0c;用对线器测试一到8芯能一一对应&#xff0c;无法上网。2号线接到h3c交换机能正常上网&#xff0c;难道是网线对568A 568B有要求&#xff1f; 解决方式&#xff1a;通过两端568…

一文讲清楚:如何做好建设工程项目管理?

在房地产开发中&#xff0c;作为项目负责人我目前的状况成了一个大管家&#xff0c;还要管理工程质量。上至各部门领导的关系维护&#xff0c;下到工人的吃喝拉撒都要我操心&#xff0c;还要没完没了的处理四邻纠纷和拆迁户的纠纷&#xff0c;每天都搞得很疲惫&#xff0c;如何…

elementUI type=“selection“多选框选中 删除 回显 赋值问题 回显数组改变选中状态未改变

业务需求&#xff1a; 点击查询弹列表框 勾选列表选项保存 可删除可重新查询列表添加 遇到的问题&#xff1a;删除之后查询列表selection回显问题 解决&#xff1a;row-click配合:reserve-selection"true"使用 <el-tableref"refPlanTable":data"…

vue3 + ts 实现IP地址及Mac地址输入框功能

1、组件完成代码 <template><div class"ip-input"><div v-for"(item, index) in ipArr" :key"index" class"ip-input__item-wrap"><input ref"ipInput" v-model"ipArr[index]" type"t…

【Python Cookbook】S01E01 将长度为N的序列分解为N个单独的变量

目录 问题解决方案讨论 问题 将一个包含 N N N 个元素的元组或者序列&#xff0c;现在想将其分解为 N N N 个单独的变量。 解决方案 任何序列都可以通过简单的赋值操作分解为单独的变量&#xff1a; p (4, 5) x, y p print("x", x) print("y", y)唯…

现在怎么做抖店才能赚钱?这四个重要建议,你千万不能忽略!

大家好&#xff0c;我是电商花花。 现在目前看抖音小店前景和红利依然有很大的市场空间&#xff0c;抖音小店平台流量大&#xff0c;商家入驻门槛低&#xff0c;抖店的运营技术也不像其它传统电商平台那么高。 所以&#xff0c;当下抖音小店仍然是流量大&#xff0c;机遇多。…

605.种花问题

假设有一个很长的花坛&#xff0c;一部分地块种植了花&#xff0c;另一部分却没有。可是&#xff0c;花不能种植在相邻的地块上&#xff0c;它们会争夺水源&#xff0c;两者都会死去。 给你一个整数数组 flowerbed 表示花坛&#xff0c;由若干 0 和 1 组成&#xff0c;其中 0 表…

近屿OJAC带你解读:什么是API?

API的定义 API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细节。 是…

【Linux】网络高级IO

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;Linux 目录 &#x1f449;&#x1f3fb;五种IO模型&#x1f449;&#x1f3fb;消息通信的同步异步与进程线程的同步异步有什么不同&#xff1f;&#x1f449…

远程工作利器:高效指南教你如何在Linux服务器上部署Jupyter Notebook并实现安全远程访问

远程工作利器&#xff1a;高效指南教你如何在Linux服务器上部署Jupyter Notebook并实现安全远程访问 1.安装 Anaconda和python 你可以在终端中运行以下命令来检查是否已安装&#xff1a; python --version python3 --version安装 pip pip 是 Python 的包管理工具&#xff0c…

长方形边框 上方中间有缺口 css

<div class"text_6">大234234师掌4234柜</div><div class"text-wrapper_1"><span class"paragraph_1">四川慧创云戈科技有限公司推出的“大师掌柜”&#xff0c;是一个以餐饮外卖为切入口&#xff0c;专注实体小店新零售…

一款即支持3v3单片机又支持5v单片机的485收发芯片

原理图参考 H7-TOOL 特此记录 anlog 2024年5月21日

蓝桥杯嵌入式 第六届国赛 更新中……

题目 配置 注意事项 复制LCD的工程&#xff0c;先配置资源 --- 勾选完选项一定要再看一眼&#xff0c;可能选择错误 ADC&#xff1a;配置ADC2_IN15&#xff0c;对应PB15引脚 EEROM&#xff0c;配置PB6和PB7 按键 输入模式PB0、PB1、PB2、PA0 LED 一定要使能PD2 PWM互补输出&…

jquery---ajax方法示例

ajax方法 $.ajax({name:value, name:value, ... }) ajax方法有一个参数&#xff0c;一定长度的对象&#xff0c;内部指定了ajax的请求地址和格式&#xff0c;方式等等&#xff0c;它可以有以下的属性和值 示例 这里展示了一个简单的get请求图片url的实例 let data; let url…

【Spring】认识 Spring AOP

认识 Spring AOP 1.什么是 AOP2.AOP 中的概念3.用 AOP 方式管理日志3.1 编写 AOP 日志注解类3.2 编写控制器用于测试 1.什么是 AOP AOP&#xff08;Aspect Oriented Program&#xff0c;面向切面编程&#xff09;把业务功能分为核心、非核心两部分。 核心业务功能&#xff1a…