Class DefaultSmtpMessageHandler

java.lang.Object
ch.astorm.smtp4j.core.DefaultSmtpMessageHandler
All Implemented Interfaces:
SmtpMessageHandler, SmtpServerListener

public class DefaultSmtpMessageHandler extends Object implements SmtpMessageHandler
Simple SmtpMessageHandler that stores the received messages in a list. This class is Thread-safe.
  • Constructor Details

    • DefaultSmtpMessageHandler

      public DefaultSmtpMessageHandler()
  • Method Details

    • notifyStart

      public void notifyStart(SmtpServer server)
      Description copied from interface: SmtpServerListener
      Invoked when the server has been started and is ready to receive messages.
      Specified by:
      notifyStart in interface SmtpServerListener
      Parameters:
      server - The started SmtpServer.
    • notifyClose

      public void notifyClose(SmtpServer server)
      Description copied from interface: SmtpServerListener
      Invoked when the server has been closed.
      Specified by:
      notifyClose in interface SmtpServerListener
      Parameters:
      server - The stopped SmtpServer.
    • notifyMessage

      public void notifyMessage(SmtpServer server, SmtpMessage smtpMessage)
      Description copied from interface: SmtpServerListener
      Invoked when the server has received a message. This method will be invoked within the background Thread used to receive the message.
      Specified by:
      notifyMessage in interface SmtpServerListener
      Parameters:
      server - The SmtpServer that received the message.
      smtpMessage - The received message.
    • messageReader

      public SmtpMessageHandler.SmtpMessageReader messageReader()
      Description copied from interface: SmtpMessageHandler
      Returns a new SmtpMessageReader that loops over the received messages. Note that if you create multiple SmtpMessageReader instances, the will compete over the same message list and the messages will be received only by one of the readers.
      Specified by:
      messageReader in interface SmtpMessageHandler
      Returns:
      A new SmtpMessageReader instance.
    • readMessages

      public List<SmtpMessage> readMessages(long delayIfNoMessage, TimeUnit unit)
      Description copied from interface: SmtpMessageHandler
      Retrieves the received messages and clears the list. In case there are already some messages returned, this method returns them immediately without waiting.
      Specified by:
      readMessages in interface SmtpMessageHandler
      Parameters:
      delayIfNoMessage - The delay to wait when there is no message yet received or a negative value to avoid any wait.
      unit - The unit of the delayIfNoMessage.
      Returns:
      All the (newly) received messages or an empty list if none.