Class Pop3PollingMonitoringStrategy

All Implemented Interfaces:
MonitoringStrategy

public class Pop3PollingMonitoringStrategy extends PollingMonitoringStrategy
Implementation of the MonitoringStrategy interface that uses a simple polling mechanism suitable for POP3 servers. Since POP3 does not have a native mechanism to determine which messages are "new", this implementation simply retrieves all messages in the Folder, and delete them afterwards. All messages in the POP3 mailbox are therefore, by definition, new.

Setting the deleteMessages property is therefore ignored: messages are always deleted.

Since:
1.5.0
Author:
Arjen Poutsma
  • Constructor Details

    • Pop3PollingMonitoringStrategy

      public Pop3PollingMonitoringStrategy()
  • Method Details

    • setDeleteMessages

      public void setDeleteMessages(boolean deleteMessages)
      Description copied from class: AbstractMonitoringStrategy
      Sets whether messages should be marked as DELETED after they have been read. Default is true.
      Overrides:
      setDeleteMessages in class AbstractMonitoringStrategy
    • afterSleep

      protected void afterSleep(jakarta.mail.Folder folder) throws jakarta.mail.MessagingException
      Re-opens the folder, if it closed.
      Overrides:
      afterSleep in class PollingMonitoringStrategy
      Parameters:
      folder - the folder to check for new messages
      Throws:
      jakarta.mail.MessagingException - in case of JavaMail errors
    • searchForNewMessages

      protected jakarta.mail.Message[] searchForNewMessages(jakarta.mail.Folder folder) throws jakarta.mail.MessagingException
      Simply returns Folder.getMessages().
      Overrides:
      searchForNewMessages in class AbstractMonitoringStrategy
      Parameters:
      folder - the folder to retrieve new messages from
      Returns:
      the new messages
      Throws:
      jakarta.mail.MessagingException - in case of JavaMail errors
    • deleteMessages

      protected void deleteMessages(jakarta.mail.Folder folder, jakarta.mail.Message[] messages) throws jakarta.mail.MessagingException
      Deletes the given messages from the given folder, and closes it to expunge deleted messages.
      Overrides:
      deleteMessages in class AbstractMonitoringStrategy
      Parameters:
      folder - the folder to delete messages from
      messages - the messages to delete
      Throws:
      jakarta.mail.MessagingException - in case of JavaMail errors