Package com.iizix.mail
Class MailSender
- java.lang.Object
-
- com.iizix.mail.MailSender
-
public class MailSender extends java.lang.Object
The 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.void
deleteMailDirectory()
Deletes all unsent mails and the mail folder.void
dispose()
Disposes of the current mail sender and leaves unsent mail queued.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.InterruptedException
Requests 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.
-
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.
-
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.IOException
Deletes 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.
-
-