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<SMTPConfiguration> lsmtp;
|
private final String[] lmail;
|
|
public BlockingNotificationEmailSender(List<SMTPConfiguration> 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;
|
}
|
}
|