【java深入学习第7章】用 Spring Boot 和 Java Mail 轻松实现邮件发送功能
创始人
2024-12-26 04:10:38
0

引言

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

一、准备工作

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

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

二、添加依赖

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

              org.springframework.boot         spring-boot-starter-mail       

三、配置邮件服务器

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.com     port: 587     username: your-email@gmail.com     password: your-email-password     properties:       mail:         smtp:           auth: true           starttls:             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 {      @Autowired     private 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 {      @Autowired     private 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写论文

相关内容

热门资讯

2分钟必备!wpk辅助(透视)... 2分钟必备!wpk辅助(透视)一直真的有挂,安装教程(有挂规律)-哔哩哔哩1)wpk辅助辅助挂:进一...
透视脚本!wepoker免费透... 透视脚本!wepoker免费透视脚本(透视)原来真的是有挂,专业教程(有挂插件挂)-哔哩哔哩小薇(透...
透视辅助!约局吧如何查看是否有... 透视辅助!约局吧如何查看是否有挂,wepoker开辅助能查到吗,法门教程(有挂方法)-哔哩哔哩1)约...
五分钟揭露!pokemmo辅助... 五分钟揭露!pokemmo辅助器脚本下载(透视)果然真的是有挂,详细教程(证实有挂)-哔哩哔哩运po...
透视新版!哈糖大菠萝可以开挂吗... 透视新版!哈糖大菠萝可以开挂吗,wpk私人局有透视吗,项目教程(竟然有挂)-哔哩哔哩哈糖大菠萝可以开...
透视最新!拱趴大菠萝挂哪里(透... 您好,拱趴大菠萝挂哪里这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩...
第4分钟必备!wpk俱乐部怎么... 第4分钟必备!wpk俱乐部怎么辅助(透视)果然是真的挂,透明挂教程(有挂工具)-哔哩哔哩1、许多玩家...
透视挂!wepoker数据分析... 透视挂!wepoker数据分析工具,fishpoker透视,秘籍教程(有挂方略)-哔哩哔哩亲,关键说...
透视软件!德州辅助工具到底怎么... 透视软件!德州辅助工具到底怎么样(透视)都是是真的挂,攻略教程(有挂科技)-哔哩哔哩德州辅助工具到底...
8分钟详细!cloudpoke... 8分钟详细!cloudpoker辅助(透视)原来真的有挂,解说技巧(有挂技巧)-哔哩哔哩1、玩家可以...