19 package org.turro.mail.impl;
21 import java.net.MalformedURLException;
22 import java.util.HashSet;
24 import java.util.logging.Level;
25 import java.util.logging.Logger;
26 import javax.mail.internet.InternetAddress;
27 import javax.naming.NamingException;
28 import org.apache.commons.mail.EmailException;
29 import org.turro.command.Command;
30 import org.turro.elephant.context.ElephantContext;
39 private final Set<MailMessage> pool =
new HashSet<>();
40 private Command onFinish;
43 this.pool.addAll(pool);
46 public void send(Command onFinish) {
47 this.onFinish = onFinish;
48 if(pool.size() > 100) {
49 new Thread(
this).start();
57 int i = 1, count = pool.size();
61 Logger.getLogger(
MailMessagePool.class.getName()).log(Level.INFO,
"Sent mail from {0} to {1}. Subject: {2}",
62 new Object[]{mail.getEmail().getFromAddress().getAddress(),
63 InternetAddress.toString((InternetAddress[]) mail.getEmail().getToAddresses().toArray(new InternetAddress[0])), mail.getSubject()});
64 if(count > 100 && ++i < count) Thread.sleep(100);
65 }
catch (MalformedURLException | NamingException | InterruptedException | EmailException ex) {
70 if(onFinish !=
null) {
72 onFinish.execute(
null);
73 }
catch (Exception ex) {
static String logMsg(String msg)
void send(Command onFinish)
MailMessagePoolSender(Set< MailMessage > pool)