send email to list of users with different timezones?
- by ylazez
i use the following method to send email to list of users
i want the (To) in each email to be for just the user only not all users
i.e appears to the users that the email is sent to only him
my guess is to loop on:
message.addRecipients(Message.RecipientType.TO, address);
then send the message right? , but this is a heavy process sending an email many times
any ideas ?
suppose that i have the timezone for each user and i want to send each user the message in his timzone, the same issue i guess setting sent date for each user in his timezone then sending the message, right ?
the method is:
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", "localhost");
// Get a mail session
Session session = Session.getDefaultInstance(props, null);
// Define a new mail message
Message message = new MimeMessage(session);
InternetAddress ia = new InternetAddress();
ia.setPersonal("MySite");
ia.setAddress(from);
message.setFrom(ia);
Address[] address = new Address[recievers.size()];
for (int i = 0; i < recievers.size(); i++) {
address[i] = new InternetAddress(recievers.get(i));
}
message.addRecipients(Message.RecipientType.TO, address);
message.setSubject(subject);
// Create a message part to represent the body text
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(body, "text/html");
// use a MimeMultipart as we need to handle the file attachments
Multipart multipart = new MimeMultipart();
// add the message body to the mime message
multipart.addBodyPart(messageBodyPart);
// Put all message parts in the message
message.setContent(multipart);
message.setSentDate(getCurrentDate());
// Send the message
Transport.send(message);
} catch (Exception ex) {}