【发布时间】:2016-01-20 05:41:35
【问题描述】:
我正在使用以下 java 方法通过 SMTP 服务器向多个用户发送邮件。当用户数低于 200 时,所有邮件都被投递。但是当收件人数量超过 200 时,我收到 com.sun.mail.smtp.SMTPAddressFailedException: 452 4.5.3 Too many recipients 并且没有邮件送达。
我猜这可能是由于 SMTP 服务器中的配置并通知了管理员。但他说 SMTP 服务器被配置为一次向多达 500 个收件人发送邮件,问题出在我的程序中。但我没有看到任何设置 SMTP 最大收件人的属性。 我是否遗漏了什么,或者我可以放松一下并继续指责服务器管理员?
public void sendAllMails(List<String> mailIds,String subject,String text)
{
String smtpHost="127.0.0.1";
String fromAddress = "user1@mymail.com";
String mailUser = "user1";
String password = "pass1";
String mailId=null;
try{
java.util.Properties properties = System.getProperties();
Session session = Session.getInstance(properties, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromAddress));
Iterator<String> iterator=mailIds.iterator();
while(iterator.hasNext()){
mailId=iterator.next();
message.addRecipients(Message.RecipientType.BCC, mailId);
}
message.setSubject(subject);
message.setContent(text, "text/html");
session.setDebug(true);
Transport transport = session.getTransport("smtp");
transport.connect(smtpHost, mailUser, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
catch(Exception e){
e.printStackTrace();
}
}
【问题讨论】:
标签: java email smtp jakarta-mail