Class GreenMailProxy

    • Constructor Detail

      • GreenMailProxy

        public GreenMailProxy()
    • Method Detail

      • getSmtp

        public SmtpServer getSmtp()
        Returns:
        SMTP server operated by this GreenMail instance or null if there is none
      • getImap

        public ImapServer getImap()
        Returns:
        SMTP server operated by this GreenMail instance or null if there is none
      • getPop3

        public Pop3Server getPop3()
        Returns:
        SMTP server operated by this GreenMail instance or null if there is none
      • getSmtps

        public SmtpServer getSmtps()
        Returns:
        SMTP server operated by this GreenMail instance or null if there is none
      • getImaps

        public ImapServer getImaps()
        Returns:
        SMTP server operated by this GreenMail instance or null if there is none
      • getPop3s

        public Pop3Server getPop3s()
        Returns:
        SMTP server operated by this GreenMail instance or null if there is none
      • getManagers

        public Managers getManagers()
        Returns:
        Greenmail protocol managers
      • getUserManager

        public UserManager getUserManager()
        Returns:
        the user manager for
      • waitForIncomingEmail

        public boolean waitForIncomingEmail​(long timeout,
                                            int emailCount)
        Description copied from interface: GreenMailOperations
        Use this method if you are sending email in a different thread from the one you're testing from. Block waits for an email to arrive in any mailbox for any user. Implementation Detail: No polling wait implementation
        Parameters:
        timeout - maximum time in ms to wait for emailCount of messages to arrive before giving up and returning false
        emailCount - waits for these many emails to arrive before returning
        Returns:
        Returns false if timeout period was reached, otherwise true.
      • waitForIncomingEmail

        public boolean waitForIncomingEmail​(int emailCount)
        Description copied from interface: GreenMailOperations
        Does the same thing as GreenMailOperations.waitForIncomingEmail(long, int) but with a default timeout of 5000ms
        Parameters:
        emailCount - waits for these many emails to arrive before returning
        Returns:
        Returns false if timeout period was reached, otherwise true.
      • getReceivedMessages

        public jakarta.mail.internet.MimeMessage[] getReceivedMessages()
        Returns:
        Returns all messages in all folders for all users GreenMailUtil has a bunch of static helper methods to extract body text etc.
      • getReceivedMessagesForDomain

        public jakarta.mail.internet.MimeMessage[] getReceivedMessagesForDomain​(String domain)
        Description copied from interface: GreenMailOperations
        Gets all messages containing given domain.
        Parameters:
        domain - the domain, such as 'icegreen.com' or 'some.example.com'
        Returns:
        Returns all received messages for given domain.
      • setUser

        public GreenMailUser setUser​(String login,
                                     String password)
        Description copied from interface: GreenMailOperations
        Sets the password for the account linked to email. If no account exits, one is automatically created when an email is received The automatically created account has the account login and password equal to the email address.
        Parameters:
        login - Login for which the password should be set. This is assumed to be the same as the email address.
        password - New password
        Returns:
        the user created
      • setUser

        public GreenMailUser setUser​(String email,
                                     String login,
                                     String password)
        Description copied from interface: GreenMailOperations
        Sets the password for the account linked to email. If no account exits, one is automatically created when an email is received The automatically created account has the account login and password equal to the email address.
        Parameters:
        email - Email address for which the password should be set
        login - Login name for login. This may be different to the email address. E.g. the email address could be "info@localhost", the login could be "info".
        password - New password
        Returns:
        the user created
      • setUsers

        public void setUsers​(Properties users)
        Description copied from interface: GreenMailOperations
        Sets up accounts with password based on a properties map where the key is the email/login and the value the password
        Parameters:
        users - User/password map
      • setQuotaSupported

        public void setQuotaSupported​(boolean isEnabled)
        Description copied from interface: GreenMailOperations
        Toggles the IMAP quota support. Quotas are enabled by default.
        Parameters:
        isEnabled - true, if quotas should be supported.
      • start

        public void start()
        Description copied from interface: GreenMailOperations
        Start the GreenMail server
      • stop

        public void stop()
        Description copied from interface: GreenMailOperations
        Stop the GreenMail server. Clear all data (send messages, users, ...).
      • reset

        public void reset()
        Description copied from interface: GreenMailOperations
        Restart the GreenMail server. Clear all data (send messages, users, ...)
      • loadEmails

        public GreenMailOperations loadEmails​(Path path)
                                       throws FolderException,
                                              IOException
        Description copied from interface: GreenMailOperations
        Loads emails from given path.
        • Expected structure in provided path, containing EML (rfc0822) mail files

          Pattern:

          <EMAIL> / <FOLDER*> / <*.eml>

          Example:

              ├── bar@localhost (directory)
              │   └── INBOX (directory)
              │       └── test-5.eml (file)
              └── foo@localhost (directory)
                  └── Drafts (directory)
                      └── draft.eml (file)
               
        • Creates user of given email if missing (by convention, with email as login and password)
        • Creates intermediate mail folder if missing
        Parameters:
        path - base path with email structure
        Throws:
        FolderException - if e.g. fails to create intermediate folder
        IOException - on IO error
      • getGreenMail

        protected abstract GreenMail getGreenMail()
        Returns:
        Greenmail instance provided by child class