Package com.iizix.mail
Class MailSender
- java.lang.Object
- com.iizix.mail.MailSender
 
- public class MailSender extends java.lang.ObjectThe mail sender can send emails directly or queued, with a reply callback. It must be configured in either the Designer or the Server.- All mails that are queued are stored in a mail queue folder. This means that if you stop the e.g. server and restart it, no mail will be unsent. The worst that might happen is that a mail is sent twice (but this is a very thin chance to happen). - Author:
- Christopher Mindus
 
- Constructor Summary- Constructors - Constructor - Description - MailSender(MailProps pc, java.util.concurrent.ExecutorService executorService, java.io.File mailQueueDirectory)Creates a new instance of the mail sender with the specified settings.
 - Method Summary- All Methods Static Methods Instance Methods Concrete Methods - Modifier and Type - Method - Description - Mail- createMail()Creates a new mail to send.- Mail- createMailWithDefaults()Creates a new mail to send with all defaults that are defined set: Sender, Reply To (initialized using- Message.setReplyTo(Address []), CC's, and BCC's.- void- deleteMailDirectory()Deletes all unsent mails and the mail folder.- void- dispose()Disposes of the current mail sender and leaves unsent mail queued.- InternetAddress[]- getDefaultBCCs()The default BCC's for mails.- InternetAddress[]- getDefaultCCs()The default CC's for mails.- InternetAddress- getDefaultReplyTo()The default 'Reply To' for mails.- InternetAddress- getDefaultSender()The default 'Sender' for mails.- java.lang.String- getDescription()Gets the description of this mail sender.- static MailSender- getInstance()Gets the default instance of the mail sender.- static MailSender- getInstance(java.lang.String name)Gets the default instance of the mail sender.- static MailSender[]- getInstances()Returns all configured mail senders.- int- getQueuedMailCount()Returns how mail mails are currently queued for sending.- boolean- isDisposed()Checks if the mail sender is disposed of.- static int- stopAll(long timeout)Requests to stop all mail senders.
 
- Constructor Detail- MailSender- public MailSender(MailProps pc, java.util.concurrent.ExecutorService executorService, java.io.File mailQueueDirectory) throws java.io.IOException, NoSuchProviderException, AddressException Creates a new instance of the mail sender with the specified settings. Any previous mail sender with remaining messages to send will still do its work.- Parameters:
- pc- The mail property container.
- executorService- Executor service for mail sending, null when not queueing mails, just for test sending.
- mailQueueDirectory- Mail queue directory. If it doesn't exist, it is created.
- Throws:
- java.io.IOException- If the mail queue directory does not exist.
- NoSuchProviderException- If the "smtp" or "smtps" providers do not exist!
- AddressException- If the default sender failed to parse.
 
 
 - Method Detail- getInstance- public static MailSender getInstance() Gets the default instance of the mail sender.- Returns:
- The default instance, null if none is configured.
 
 - getInstance- public static MailSender getInstance(java.lang.String name) Gets the default instance of the mail sender.- Parameters:
- name- The name of the mail sender, null for default.
- Returns:
- The default instance, null if none is configured.
 
 - getInstances- public static MailSender[] getInstances() Returns all configured mail senders.- Returns:
- The array may be empty if no mail senders are configured.
 
 - stopAll- public static int stopAll(long timeout) throws java.lang.InterruptedExceptionRequests to stop all mail senders.- Parameters:
- timeout- Timeout in milliseconds to wait.
- Returns:
- Number of mails left to send (in all mail queues), zero means none.
- Throws:
- java.lang.InterruptedException- If the wait is interrupted.
 
 - getDescription- public java.lang.String getDescription() Gets the description of this mail sender.- Returns:
- A description string, or null if none is defined.
 
 - getDefaultSender- public InternetAddress getDefaultSender() The default 'Sender' for mails.- Returns:
- The default 'Sender' for mails, nullfor none.
 
 - getDefaultReplyTo- public InternetAddress getDefaultReplyTo() The default 'Reply To' for mails.- Returns:
- The default 'Reply To' for mails, nullfor none.
 
 - getDefaultCCs- public InternetAddress[] getDefaultCCs() The default CC's for mails.- Returns:
- The default CC's for mails, nullfor none.
 
 - getDefaultBCCs- public InternetAddress[] getDefaultBCCs() The default BCC's for mails.- Returns:
- The default BCC's for mails, nullfor none.
 
 - isDisposed- public boolean isDisposed() Checks if the mail sender is disposed of.- Returns:
- true if disposed of, false otherwise.
 
 - createMail- public Mail createMail() Creates a new mail to send.- Returns:
- An uninitialized mail with a MimeMessageas the mail's message. It can be retrieved usingMail.getMessage()and then cast toMimeMessage.
 
 - createMailWithDefaults- public Mail createMailWithDefaults() throws MessagingException Creates a new mail to send with all defaults that are defined set:- Sender,
- Reply To (initialized using Message.setReplyTo(Address []),
- CC's, and
- BCC's.
 - Returns:
- An new mail initialized only with default Sender, Reply To, CC's and BCC's where defined, with a MimeMessageas the mail's message. It can be retrieved usingMail.getMessage()and then cast toMimeMessage.
- Throws:
- MessagingException- For messaging failures.
 
 - getQueuedMailCount- public int getQueuedMailCount() Returns how mail mails are currently queued for sending.- Returns:
- The number of queued mails.
 
 - dispose- public void dispose() Disposes of the current mail sender and leaves unsent mail queued.
 - deleteMailDirectory- public void deleteMailDirectory() throws java.io.IOExceptionDeletes all unsent mails and the mail folder. This call should be made in preference once the mail sender has been disposed of.- Throws:
- java.io.IOException- If the mail folder failed to be deleted.