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

【java深入学习第7章】用 Spring Boot 和 Java Mail 轻松实现邮件发送功能

引言

在现代的企业应用中,邮件发送是一个非常常见的功能。无论是用户注册后的验证邮件,还是系统通知邮件,邮件服务都扮演着重要的角色。本文将介绍如何在Spring Boot项目中整合Java Mail,实现发送邮件的功能。

一、准备工作

在开始之前,我们需要准备以下内容:

  • 一个Spring Boot项目
  • 一个可用的SMTP邮件服务器(如Gmail、QQ邮箱等)

二、添加依赖

首先,在pom.xml中添加Spring Boot Starter Mail依赖:

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

三、配置邮件服务器

application.propertiesapplication.yml中配置邮件服务器信息。以下是使用Gmail SMTP服务器的示例配置:

application.properties

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

application.yml

spring:mail:host: smtp.gmail.comport: 587username: your-email@gmail.compassword: your-email-passwordproperties:mail:smtp:auth: truestarttls:enable: true

四、编写邮件发送服务

创建一个MailService类,用于封装邮件发送的逻辑:

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 MailService {@Autowiredprivate JavaMailSender mailSender;public void sendSimpleMail(String to, String subject, String content) {SimpleMailMessage message = new SimpleMailMessage();message.setFrom("your-email@gmail.com");message.setTo(to);message.setSubject(subject);message.setText(content);mailSender.send(message);}
}

五、编写控制器

创建一个控制器MailController,提供一个发送邮件的接口:

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;@RestController
public class MailController {@Autowiredprivate MailService mailService;@GetMapping("/sendMail")public String sendMail(@RequestParam String to, @RequestParam String subject, @RequestParam String content) {mailService.sendSimpleMail(to, subject, content);return "Mail sent successfully";}
}

六、测试邮件发送功能

启动Spring Boot应用,访问以下URL测试邮件发送功能:

http://localhost:8080/sendMail?to=recipient-email@gmail.com&subject=Test&content=This is a test email.

如果配置正确并且邮件服务器可用,你应该会收到一封测试邮件。

七、发送HTML邮件

除了发送简单文本邮件,Java Mail还支持发送HTML格式的邮件。我们可以在MailService中添加一个方法来发送HTML邮件:

import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;public void sendHtmlMail(String to, String subject, String content) throws MessagingException {MimeMessage message = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message, true);helper.setFrom("your-email@gmail.com");helper.setTo(to);helper.setSubject(subject);helper.setText(content, true);mailSender.send(message);
}

八、总结

通过本文的介绍,我们了解了如何在Spring Boot项目中整合Java Mail,实现发送邮件的功能。无论是简单的文本邮件,还是复杂的HTML邮件,Java Mail都能轻松应对。希望本文对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言。

百万大学生都在用的AI写论文工具,篇篇无重复👉:AI写论文

http://www.lryc.cn/news/401068.html

相关文章:

  • Linux抽象套接字
  • GA-Kmeans-Transformer-GRU时序聚类+状态识别组合模型,创新发文无忧!
  • Python面试全攻略:基础知识、特性、算法与实战解析
  • Linux网络编程-socket套接字使用详解
  • Leetcode 236. 二叉树的最近公共祖先
  • GPT-4从0到1搭建一个Agent简介
  • docker镜像源配置
  • 解读InnoDB数据库索引页与数据行的紧密关联
  • 以数据编织,重构数据管理新范式
  • 在linux x86服务器安装jdk
  • 2024智慧竞技游戏俱乐部线下面临倒闭?
  • jmeter分布式(四)
  • 如何解决手机游戏因IP代理被封禁无法正常游戏的问题?
  • windows10 安装Anaconda
  • [图解]SysML和EA建模住宅安全系统-14-黑盒系统规约
  • frp内网穿透xtcp安全点对点p2p部署记录打洞失败解决方法
  • C++基础篇(2)
  • c++ primer plus 第16章string 类和标准模板库,16.1.3 使用字符串
  • 使用mybatis的statementHander拦截器监控表和字段并发送钉钉消息
  • 信贷系统——基础信贷概念
  • 分页查询及其拓展应用案例
  • 【UE5.1】NPC人工智能——02 NPC移动到指定位置
  • 有关电力电子技术的一些相关仿真和分析:⑤交-直-交全桥逆变+全波整流结构电路(MATLAB/Siumlink仿真)
  • 记录一次Android推流、录像踩坑过程
  • VsCode 与远程服务器 ssh免密登录
  • 7/13 - 7/15
  • 烟雾监测与太阳能源:实验装置在其中的作用
  • QT下,如何获取控制台输入
  • mybatis动态传入参数 pgsql 日期 Interval ,day,minute
  • 常见CSS属性