package art.servers.transactionsserver.model.access.login; import art.library.model.devices.user.User; import art.library.utils.licence.Licence; import art.library.utils.mail.MailMessage; import art.library.utils.mail.SMTP; import art.library.utils.mail.SMTPConfiguration; import art.servers.Shared; import java.util.List; import java.util.concurrent.Executors; import java.util.concurrent.ThreadPoolExecutor; public class BlockingNotificationEmailSender { private ThreadPoolExecutor executor; private final List lsmtp; private final String[] lmail; public BlockingNotificationEmailSender(List lsmtp, String[] lmail) { this.lsmtp = lsmtp; this.lmail = lmail; executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(5); } public void sendMailToAll(MailMessage message) { for (String mailTo : lmail) { MailMessage messageCopy = new MailMessage(); messageCopy.to[0] = mailTo; messageCopy.subject = message.subject; messageCopy.body = message.body; try { Shared.mailNotificacion(new User(), messageCopy); } catch (Exception e) { } } } private class RunnableSender implements Runnable { private MailMessage message; public RunnableSender(MailMessage message, String mailTo) { this.message = message; } @Override public void run() { Thread.currentThread().setName("Sending block notification to " + message.to); try { sendMailTo(message); } catch (Exception e) { e.printStackTrace(); } } } private boolean sendMailTo(MailMessage message) { boolean success = true; for (SMTPConfiguration configuration : lsmtp) { try { try { configuration.smtpPassword = Licence.decrypt(configuration.smtpPassword); } catch (Exception e) { } SMTP smtp = new SMTP(configuration); smtp.send(message); } catch (Exception ex) { ex.printStackTrace(); success = false; } } return success; } }