spring-boot-starter-mail 发邮件给多个人
时间: 2024-10-15 14:17:06 浏览: 6
Spring Boot Starter Mail 是 Spring Boot 提供的一个 starters,它简化了发送电子邮件的功能,使得在 Spring 应用程序中集成邮件服务变得更加容易。如果你想通过这个 starter 向多个人群组发送邮件,可以按照以下步骤操作:
1. 首先,在你的项目中添加 `spring-boot-starter-mail` 到依赖中。
2. 配置邮箱服务:通常需要设置邮件服务器的相关信息,如主机名、端口、用户名、密码等。这通常放在 application.properties 或 application.yml 文件中,示例如下:
```properties
spring.mail.host=smtp.example.com
spring.mail.port=587
spring.mail.username=your_email@example.com
spring.mail.password=your_password
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.auth=true
```
3. 创建 Java 类来处理邮件模板和收件人列表。创建一个包含多个收件人的 List 对象,例如:
```java
private List<String> recipients = Arrays.asList("recipient1@example.com", "recipient2@example.com");
```
4. 使用 JavaMailTemplate 发送邮件,你可以遍历收件人列表并调用 send() 方法:
```java
@Autowired
private JavaMailSender javaMailSender;
public void sendEmail(String templateName, Map<String, Object> model) {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
try {
// 设置邮件主题和内容
helper.setSubject(templateName);
String htmlContent = "<html><body>" + processTemplate(templateName, model) + "</body></html>";
helper.setText(htmlContent, true); // 如果需要纯文本版本,也可以设置 plainTextBody
// 发送给所有收件人
for (String recipient : recipients) {
helper.setTo(recipient);
javaMailSender.send(message);
}
} catch (MessagingException e) {
log.error("Error sending email", e);
}
}
// 根据模板名称和模型生成 HTML 内容的部分
private String processTemplate(String templateName, Map<String, Object> model) {
// ...
}
```
阅读全文