Tenho o seguinte método que uso para enviar e-mails em meu sistema.
Um dos tipos de e-mail é uma newsletter... bom, o meu sistema ainda não está em produção e resolvi fazer um teste cadastrando míseros 500 usuários e, quando tentei mandar a newsletter levou uma eternidade... Isso me preocupa muito pois o sistema espera ter cerca de 1 milhão de usuários (ou mais) =x
Alguém poderia me dar uma mão em como otimizar isso, ou fornecer alguma altrenativa a essa maneira de enviar a newsletter?
public void sendEmail(EmailTemplate emailTemplate, List<String> recipients) {
boolean debug = false;
// Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(debug);
// create a message
Message msg = new MimeMessage(session);
// set the from and to address
InternetAddress addressFrom = new InternetAddress(emailFromAddress);
msg.setFrom(addressFrom);
emailTemplate.aplicarTemplate(msg);
// Um e-mail para cada usuário
for (String recipient : recipients) {
InternetAddress[] addressTo = new InternetAddress[1];
addressTo[0] = new InternetAddress(recipient);
msg.setRecipients(Message.RecipientType.TO, addressTo);
Transport.send(msg);
}
}