当前位置:实例文章 » 其他实例» [文章]Springboot发送邮件

Springboot发送邮件

发布人:shili8 发布时间:2025-01-06 08:23 阅读次数:0

**Spring Boot 发送邮件**

在 Spring Boot 应用中,发送邮件是一个常见的需求。通过使用 JavaMail API 和 Spring Boot 的内置功能,我们可以轻松地实现邮件发送功能。

###依赖配置首先,我们需要在 `pom.xml` 文件中添加以下依赖:

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


### 配置邮件属性接下来,我们需要配置邮件相关的属性。我们可以在 `application.properties` 文件中添加以下内容:

propertiesspring.mail.host=smtp.163.comspring.mail.port=25spring.mail.username=你的邮箱账号spring.mail.password=你的邮箱密码


### 实现邮件发送功能下面是实现邮件发送功能的 Java 类:

javaimport org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;

@Componentpublic class MailService {

 @Autowired private JavaMailSender javaMailSender;

 public void sendMail(String to, String subject, String content) {
 SimpleMailMessage mailMessage = new SimpleMailMessage();
 mailMessage.setFrom("你的邮箱账号");
 mailMessage.setTo(to);
 mailMessage.setSubject(subject);
 mailMessage.setText(content);

 try {
 javaMailSender.send(mailMessage);
 System.out.println("邮件发送成功!");
 } catch (Exception e) {
 System.out.println("邮件发送失败!");
 }
 }
}


### 使用 MailService 类最后,我们可以在其他 Java 类中使用 `MailService` 类来发送邮件:

javaimport org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

@Controllerpublic class TestController {

 @Autowired private MailService mailService;

 public void test() {
 String to = "收件人邮箱";
 String subject = "测试邮件";
 String content = "这是一个测试邮件";

 mailService.sendMail(to, subject, content);
 }
}


### 使用 HTML 模板发送邮件如果我们需要发送包含 HTML 内容的邮件,可以使用 Spring Boot 的内置功能 `spring-boot-starter-mail` 中的 `org.springframework.mail.javamail.JavaMailSender` 类。

首先,我们需要创建一个 HTML 模板:

html<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>测试邮件</title>
</head>
<body>
 <h1>这是一个测试邮件</h1>
 <p>内容:</p>
 <ul>
 <li>点1</li>
 <li>点2</li>
 <li>点3</li>
 </ul>
</body>
</html>


然后,我们可以在 Java 类中使用 `JavaMailSender` 来发送邮件:

javaimport org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

@Componentpublic class MailService {

 @Autowired private JavaMailSender javaMailSender;

 public void sendHtmlMail(String to, String subject, String content) {
 MimeMessage mimeMessage = javaMailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);

 helper.setFrom("你的邮箱账号");
 helper.setTo(to);
 helper.setSubject(subject);
 helper.setText(content, true);

 try {
 javaMailSender.send(mimeMessage);
 System.out.println("邮件发送成功!");
 } catch (Exception e) {
 System.out.println("邮件发送失败!");
 }
 }
}


### 使用 Thymeleaf 模板发送邮件如果我们需要发送包含 HTML 内容的邮件,可以使用 Spring Boot 的内置功能 `spring-boot-starter-mail` 中的 `org.springframework.mail.javamail.JavaMailSender` 类。

首先,我们需要创建一个 HTML 模板:

html<!DOCTYPE html>
<html xmlns:th=" /><head>
 <meta charset="UTF-8">
 <title>测试邮件</title>
</head>
<body>
 <h1 th:text="${message}">这是一个测试邮件</h1>
 <p th:text="${content}">内容:</p>
 <ul th:each="item : ${list}">
 <li th:text="${item}">点1</li>
 </ul>
</body>
</html>


然后,我们可以在 Java 类中使用 `JavaMailSender` 来发送邮件:

javaimport org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

@Componentpublic class MailService {

 @Autowired private JavaMailSender javaMailSender;

 public void sendHtmlMail(String to, String subject, String content) {
 MimeMessage mimeMessage = javaMailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);

 helper.setFrom("你的邮箱账号");
 helper.setTo(to);
 helper.setSubject(subject);
 helper.setText(content, true);

 try {
 javaMailSender.send(mimeMessage);
 System.out.println("邮件发送成功!");
 } catch (Exception e) {
 System.out.println("邮件发送失败!");
 }
 }

 public void sendThymeleafMail(String to, String subject, Map model) {
 MimeMessage mimeMessage = javaMailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);

 helper.setFrom("你的邮箱账号");
 helper.setTo(to);
 helper.setSubject(subject);

 try {
 MimeMessage message = javaMailSender.createMimeMessage();
 MimeMessageHelper helper2 = new MimeMessageHelper(message, true);
 helper2.setText(getTemplate(model), true);
 javaMailSender.send(message);
 System.out.println("邮件发送成功!");
 } catch (Exception e) {
 System.out.println("邮件发送失败!");
 }
 }

 private String getTemplate(Map model) {
 // 使用 Thymeleaf 模板引擎来渲染模板 return "";
 }
}


### 总结在本文中,我们介绍了如何使用 Spring Boot 来发送邮件。我们首先配置了邮件相关的属性,然后实现了一个 `MailService` 类来发送邮件。最后,我们展示了如何使用 HTML 模板和 Thymeleaf 模板来发送包含 HTML 内容的邮件。

### 参考* [Spring Boot Mail]( />* [JavaMail API]( />* [Thymeleaf](

相关标签:spring
其他信息

其他资源

Top