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, Mapmodel) { 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](