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](

