com.plexobject.mail.bulk
Class BulkEmailer

java.lang.Object
  |
  +--com.plexobject.mail.bulk.BulkEmailer

public class BulkEmailer
extends java.lang.Object

The BulkEmailer accepts an email request for multiple recipients and then sends the underlying email message to each identified recipient. The component employs a threaded model and enables multiple SMTP servers to be configured to increase system throughput during bulk email processing. Accept a list of recipients and a standard message. Accept a list of recipients and custom messages for each. Accept a list of recipients, a corresponding xml file for each recipient, and a standard xsl template


Constructor Summary
BulkEmailer(java.util.ArrayList servers, int tpoolSize)
          BulkEmailer Constructor
BulkEmailer(java.io.File smtpServers, int tpoolSize)
          BulkEmailer Constructor
BulkEmailer(java.io.InputStream smtpServers, int tpoolSize)
          BulkEmailer Constructor
BulkEmailer(com.plexobject.util.ResourcePool smtpServers, int tpoolSize)
          BulkEmailer Constructor
 
Method Summary
 javax.mail.event.TransportListener getTransportListener()
          getTransportListener returns TransportListener for delivery
static void main(java.lang.String[] args)
           
 void sendMessage(java.lang.String[] to, javax.mail.Message message, boolean direct)
          sendMessage - sends message using Message specified
 void sendTextMessage(java.lang.String from, java.lang.String[] to, java.lang.String[] subject, java.lang.String[] text, java.lang.String[][] optHeaders, boolean direct)
          sendTextMessage - Accept a list of recipients and custom messages for each using text specified
 void sendTextMessage(java.lang.String from, java.lang.String[] to, java.lang.String subject, java.lang.String text, java.lang.String[][] optHeaders, boolean direct)
          sendTextMessage - Accept a list of recipients and a standard message using text specified
 void sendXmlMessage(java.lang.String from, java.lang.String[] to, java.lang.String[] subject, java.io.File[] xml, java.io.File xsl, java.lang.String[][] optHeaders, boolean direct)
          sendXmlMessage - Accept a list of recipients and a corresponding xml for each recipient, and a standard xsl template.
 void sendXmlMessage(java.lang.String from, java.lang.String[] to, java.lang.String[] subject, java.lang.String[] xml, java.lang.String xsl, java.lang.String[][] optHeaders, boolean direct)
          sendXmlMessage - Accept a list of recipients and a corresponding xml for each recipient, and a standard xsl template.
 void sendXmlMessage(java.lang.String from, java.lang.String[] to, java.lang.String subject, java.io.File xml, java.io.File xsl, java.lang.String[][] optHeaders, boolean direct)
          sendXmlMessage - Accept a list of recipients, a corresponding xml file for each recipient, and a standard xsl template.
 void sendXmlMessage(java.lang.String from, java.lang.String[] to, java.lang.String subject, java.lang.String xml, java.lang.String xsl, java.lang.String[][] optHeaders, boolean direct)
          sendXmlMessage - Accept a list of recipients, a corresponding xml for each recipient, and a standard xsl template.
 void setTransportListener(javax.mail.event.TransportListener l)
          setTransportListener sets TransportListener for delivery
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BulkEmailer

public BulkEmailer(java.io.File smtpServers,
                   int tpoolSize)
            throws java.lang.Exception
BulkEmailer Constructor

Parameters:
smtpServers - -- pool of SmtpServer(s)
tpoolSize - -- maximum number of threads, if <= 0 then default 512 is used

BulkEmailer

public BulkEmailer(java.util.ArrayList servers,
                   int tpoolSize)
            throws java.lang.Exception
BulkEmailer Constructor

Parameters:
tpoolSize - -- maximum number of threads, if <= 0 then default 512 is used

BulkEmailer

public BulkEmailer(java.io.InputStream smtpServers,
                   int tpoolSize)
            throws java.lang.Exception
BulkEmailer Constructor

Parameters:
smtpServers - -- pool of SmtpServer(s)
tpoolSize - -- maximum number of threads, if <= 0 then default 512 is used

BulkEmailer

public BulkEmailer(com.plexobject.util.ResourcePool smtpServers,
                   int tpoolSize)
BulkEmailer Constructor

Parameters:
smtpServers - -- pool of SmtpServer(s)
tpoolSize - -- maximum number of threads, if <= 0 then default 512 is used
Method Detail

getTransportListener

public javax.mail.event.TransportListener getTransportListener()
getTransportListener returns TransportListener for delivery


setTransportListener

public void setTransportListener(javax.mail.event.TransportListener l)
setTransportListener sets TransportListener for delivery

Parameters:
l - - TransportListener

sendXmlMessage

public void sendXmlMessage(java.lang.String from,
                           java.lang.String[] to,
                           java.lang.String subject,
                           java.io.File xml,
                           java.io.File xsl,
                           java.lang.String[][] optHeaders,
                           boolean direct)
                    throws javax.mail.internet.AddressException,
                           javax.mail.MessagingException,
                           java.io.IOException,
                           javax.xml.transform.TransformerConfigurationException,
                           javax.xml.transform.TransformerException
sendXmlMessage - Accept a list of recipients, a corresponding xml file for each recipient, and a standard xsl template.

Parameters:
from - -- sender's address
to - -- list of recipients
subject - -- subject of message
xml - -- file that has XML data
xsl - -- file that has XSL stylesheet
optHeaders - -- optional headers to set; it can be null
direct - -- if true it uses SMTP of recipients directly instead of outgoing SMTP server Note: Most SMTP servers only allow direct connections if your host has valid hostname and is not in blackhole list.
javax.mail.internet.AddressException
javax.mail.MessagingException
java.io.IOException
javax.xml.transform.TransformerConfigurationException
javax.xml.transform.TransformerException

sendXmlMessage

public void sendXmlMessage(java.lang.String from,
                           java.lang.String[] to,
                           java.lang.String subject,
                           java.lang.String xml,
                           java.lang.String xsl,
                           java.lang.String[][] optHeaders,
                           boolean direct)
                    throws javax.mail.internet.AddressException,
                           javax.mail.MessagingException,
                           java.io.IOException,
                           javax.xml.transform.TransformerConfigurationException,
                           javax.xml.transform.TransformerException
sendXmlMessage - Accept a list of recipients, a corresponding xml for each recipient, and a standard xsl template.

Parameters:
from - -- sender's address
to - -- list of recipients
subject - -- subject of message
xml - -- String that has XML data
xsl - -- String that has XSL stylesheet
optHeaders - -- optional headers to set; it can be null
direct - -- if true it uses SMTP of recipients directly instead of outgoing SMTP server Note: Most SMTP servers only allow direct connections if your host has valid hostname and is not in blackhole list.
javax.mail.internet.AddressException
javax.mail.MessagingException
java.io.IOException
javax.xml.transform.TransformerConfigurationException
javax.xml.transform.TransformerException

sendTextMessage

public void sendTextMessage(java.lang.String from,
                            java.lang.String[] to,
                            java.lang.String subject,
                            java.lang.String text,
                            java.lang.String[][] optHeaders,
                            boolean direct)
                     throws javax.mail.internet.AddressException,
                            javax.mail.MessagingException,
                            java.io.IOException
sendTextMessage - Accept a list of recipients and a standard message using text specified

Parameters:
from - -- sender's address
to - -- list of recipients
subject - -- subject of message
text - -- message text
optHeaders - -- optional headers to set; it can be null
direct - -- if true it uses SMTP of recipients directly instead of outgoing SMTP server Note: Most SMTP servers only allow direct connections if your host has valid hostname and is not in blackhole list.
javax.mail.internet.AddressException
javax.mail.MessagingException
java.io.IOException

sendXmlMessage

public void sendXmlMessage(java.lang.String from,
                           java.lang.String[] to,
                           java.lang.String[] subject,
                           java.io.File[] xml,
                           java.io.File xsl,
                           java.lang.String[][] optHeaders,
                           boolean direct)
                    throws javax.mail.internet.AddressException,
                           javax.mail.MessagingException,
                           java.io.IOException,
                           javax.xml.transform.TransformerConfigurationException,
                           javax.xml.transform.TransformerException
sendXmlMessage - Accept a list of recipients and a corresponding xml for each recipient, and a standard xsl template.

Parameters:
from - -- sender's address
to - -- list of recipients
subject - -- subject of message
xml - -- file that has XML data
xsl - -- file that has XSL stylesheet
optHeaders - -- optional headers to set; it can be null
direct - -- if true it uses SMTP of recipients directly instead of outgoing SMTP server Note: Most SMTP servers only allow direct connections if your host has valid hostname and is not in blackhole list.
javax.mail.internet.AddressException
javax.mail.MessagingException
java.io.IOException
javax.xml.transform.TransformerConfigurationException
javax.xml.transform.TransformerException

sendXmlMessage

public void sendXmlMessage(java.lang.String from,
                           java.lang.String[] to,
                           java.lang.String[] subject,
                           java.lang.String[] xml,
                           java.lang.String xsl,
                           java.lang.String[][] optHeaders,
                           boolean direct)
                    throws javax.mail.internet.AddressException,
                           javax.mail.MessagingException,
                           java.io.IOException,
                           javax.xml.transform.TransformerConfigurationException,
                           javax.xml.transform.TransformerException
sendXmlMessage - Accept a list of recipients and a corresponding xml for each recipient, and a standard xsl template.

Parameters:
from - -- sender's address
to - -- list of recipients
subject - -- subject of message
xml - -- String that has XML data
xsl - -- String that has XSL stylesheet
optHeaders - -- optional headers to set; it can be null
direct - -- if true it uses SMTP of recipients directly instead of outgoing SMTP server Note: Most SMTP servers only allow direct connections if your host has valid hostname and is not in blackhole list.
javax.mail.internet.AddressException
javax.mail.MessagingException
java.io.IOException
javax.xml.transform.TransformerConfigurationException
javax.xml.transform.TransformerException

sendTextMessage

public void sendTextMessage(java.lang.String from,
                            java.lang.String[] to,
                            java.lang.String[] subject,
                            java.lang.String[] text,
                            java.lang.String[][] optHeaders,
                            boolean direct)
                     throws javax.mail.internet.AddressException,
                            javax.mail.MessagingException,
                            java.io.IOException
sendTextMessage - Accept a list of recipients and custom messages for each using text specified

Parameters:
from - -- sender's address
to - -- list of recipients
subject - -- subject of message
text - -- message text
optHeaders - -- optional headers to set; it can be null
direct - -- if true it uses SMTP of recipients directly instead of outgoing SMTP server Note: Most SMTP servers only allow direct connections if your host has valid hostname and is not in blackhole list.
javax.mail.internet.AddressException
javax.mail.MessagingException
java.io.IOException

sendMessage

public void sendMessage(java.lang.String[] to,
                        javax.mail.Message message,
                        boolean direct)
                 throws javax.mail.internet.AddressException,
                        javax.mail.MessagingException,
                        java.io.IOException
sendMessage - sends message using Message specified

Parameters:
to - -- list of recipients
message - -- JavaMail message
direct - -- if true it uses SMTP of recipients directly instead of outgoing SMTP server Note: Most SMTP servers only allow direct connections if your host has valid hostname and is not in blackhole list. Note: - from or sender's address is retrieved using message.getFrom() - subject is retrieved using message.getSubject() - recipient's address(es) in message is not used for sending, - they may store valid or invalid addresses. - it is caller's responsibility to set subject, date and text, etc.
javax.mail.internet.AddressException
javax.mail.MessagingException
java.io.IOException

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
java.lang.Exception