javamail批量发送邮件
时间: 2023-07-20 13:41:43 浏览: 134
javamail发送邮件
可以使用JavaMail实现批量发送邮件,主要步骤如下:
1. 配置邮件服务器信息,包括SMTP服务器地址、端口号、用户名和密码等。
2. 创建JavaMail会话对象,可以通过Session.getDefaultInstance()方法获取默认会话对象,也可以自己创建Session对象。
3. 创建邮件对象,包括发件人、收件人、主题、内容等。
4. 创建多个邮件对象,将它们添加到一个邮件列表中。
5. 创建邮件传输对象Transport,连接邮件服务器并发送邮件列表。
下面是一个简单的示例代码:
```
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class MailSender {
public static void main(String[] args) throws Exception {
String host = "smtp.example.com";
String username = "your_username";
String password = "your_password";
String from = "your_email@example.com";
String subject = "Test Email";
String body = "This is a test email.";
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
List<String> toList = new ArrayList<String>();
toList.add("recipient1@example.com");
toList.add("recipient2@example.com");
toList.add("recipient3@example.com");
List<Message> messageList = new ArrayList<Message>();
for (String to : toList) {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(subject);
message.setText(body);
messageList.add(message);
}
Transport transport = session.getTransport("smtp");
transport.connect();
for (Message message : messageList) {
transport.sendMessage(message, message.getAllRecipients());
}
transport.close();
}
}
```
在上面的示例代码中,我们将收件人地址保存在一个列表中,然后创建多个邮件对象,将它们添加到一个邮件列表中,最后使用Transport对象发送邮件列表。
阅读全文