Java 邮件配置多个收件人
在现代应用程序中,电子邮件功能是必不可少的一部分。常常我们需要向多个收件人发送邮件。本文将介绍如何使用 Java 发送电子邮件,并配置多个收件人。
JavaMail API
JavaMail 是 Java 提供的用于发送和接收电子邮件的 API。首先,我们需要确保已经添加了 JavaMail 和 Activation 的依赖。如果你使用 Maven,可以在 pom.xml
中添加以下依赖:
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.2.0</version>
</dependency>
编写邮件发送实现
为了更好地理解邮件发送的过程,我们将实现一个简单的邮件发送类,该类能够支持多个收件人。
1. 创建 MailSender 类
首先,我们定义一个 MailSender
类,并在其中实现发送邮件的方法:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public class MailSender {
private String host;
private String from;
private String username;
private String password;
public MailSender(String host, String from, String username, String password) {
this.host = host;
this.from = from;
this.username = username;
this.password = password;
}
public void sendMail(List<String> to, String subject, String body) {
Properties properties = new Properties();
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.auth", "true");
Session session = Session.getInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
InternetAddress[] addresses = new InternetAddress[to.size()];
for (int i = 0; i < to.size(); i++) {
addresses[i] = new InternetAddress(to.get(i));
}
message.setRecipients(Message.RecipientType.TO, addresses);
message.setSubject(subject);
message.setText(body);
Transport.send(message);
System.out.println("邮件发送成功!");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
2. 使用 MailSender 类
现在我们创建一个主方法来测试这个类。以下示例展示了如何使用 MailSender
类发送邮件:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String host = "smtp.example.com"; // SMTP 服务器地址
String from = "you@example.com"; // 发件人地址
String username = "your_username"; // 用户名
String password = "your_password"; // 密码
MailSender mailSender = new MailSender(host, from, username, password);
List<String> recipients = Arrays.asList("recipient1@example.com", "recipient2@example.com");
String subject = "测试邮件";
String body = "这是一封测试邮件,多个收件人示例。";
mailSender.sendMail(recipients, subject, body);
}
}
在这个示例中,我们创建了一个 MailSender
对象,并调用 sendMail
方法来发送邮件。我们以列表的形式传递多个收件人。
饼状图示例
接下来,我们用饼状图来展示电子邮件发送的过程:
pie
title 电子邮件发送流程
"设置邮件属性" : 20
"创建邮件会话" : 25
"构建邮件内容" : 30
"发送邮件" : 25
类图
为了更好地理解我们实现代码的结构,下面是 MailSender
类的类图:
classDiagram
class MailSender {
+String host
+String from
+String username
+String password
+void sendMail(List<String> to, String subject, String body)
}
总结
通过本篇文章,我们学习了如何使用 JavaMail API 发送包含多个收件人的电子邮件。我们实现了 MailSender
类,并展示了相关的使用示例。同时,通过饼状图和类图对邮件发送的流程和结构进行了可视化。
这种模式可以扩展到更复杂的邮件发送场景,比如支持 HTML 格式的邮件、添加附件等。掌握 JavaMail API 后,你可以轻松地将电子邮件功能集成到你的 Java 应用程序中。希望本文对你有所帮助!