在我的邮件应用程序中,我想将批量邮件发送给很多人。 我们需要1000个人,所以1.000邮件。
我已经尝试通过将人员置于CC来减少金额,但是应用程序花费更多时间来发送邮件,速度与以前完全相同。
让我们拍邮件需要3到4秒, 所以:1.000 * 3s = 3000s或50Min
是否有更快捷的方式发送这些邮件?
我的代码:
public String sendMailWithCC(java.lang.String to,java.lang.String[] cc, java.lang.String from, java.lang.String message, java.lang.String title, java.util.ArrayList attachments){
boolean succes = false;
// Get system properties
Properties props = System.getProperties();
props.put("mail.smtp.host", "smtp-relay.com");
// Get Session
Session session = Session.getDefaultInstance(props,null);
String errorMessage = "";
// Define message
Message mailmsg = new MimeMessage(session);
try {
mailmsg.setFrom(new InternetAddress(from));
mailmsg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
for(int i = 0; i<cc.length ; i++){
mailmsg.addRecipient(Message.RecipientType.CC, new InternetAddress(cc[i]));
}
mailmsg.setSubject(title);
// create the message part
MimeBodyPart messageBodyPart = new MimeBodyPart();
//fill message
messageBodyPart.setContent(message, "text/html; charset=ISO-8859-1");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Put parts in message
mailmsg.setContent(multipart);
// Send message
Transport transport = session.getTransport("smtp");
// authentication with mail server
transport.connect();
transport.sendMessage(mailmsg, mailmsg.getAllRecipients());
transport.close();
succes = true;
}catch (Exception e){
errorMessage = e.getMessage();
e.printStackTrace();
}
if(succes == true){
return null;
}else{
return "ERROR when sending email " + errorMessage;
}
}