Class IMAPClient

  • Direct Known Subclasses:
    IMAPSClient

    public class IMAPClient
    extends IMAP
    The IMAPClient class provides the basic functionalities found in an IMAP client.
    • Constructor Detail

      • IMAPClient

        public IMAPClient()
    • Method Detail

      • capability

        public boolean capability()
                           throws java.io.IOException
        Send a CAPABILITY command to the server.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs
      • noop

        public boolean noop()
                     throws java.io.IOException
        Send a NOOP command to the server. This is useful for keeping a connection alive since most IMAP servers will timeout after 10 minutes of inactivity.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • logout

        public boolean logout()
                       throws java.io.IOException
        Send a LOGOUT command to the server. To fully disconnect from the server you must call disconnect(). A logout attempt is valid in any state. If the client is in the not authenticated or authenticated state, it enters the logout on a successful logout.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • login

        public boolean login​(java.lang.String username,
                             java.lang.String password)
                      throws java.io.IOException
        Login to the IMAP server with the given username and password. You must first connect to the server with connect before attempting to login. A login attempt is only valid if the client is in the NOT_AUTH_STATE. After logging in, the client enters the AUTH_STATE.
        Parameters:
        username - The account name being logged in to.
        password - The plain text password of the account.
        Returns:
        True if the login attempt was successful, false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs in the process of logging in.
      • select

        public boolean select​(java.lang.String mailboxName)
                       throws java.io.IOException
        Send a SELECT command to the server.
        Parameters:
        mailboxName - The mailbox name to select.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • examine

        public boolean examine​(java.lang.String mailboxName)
                        throws java.io.IOException
        Send an EXAMINE command to the server.
        Parameters:
        mailboxName - The mailbox name to examine.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • create

        public boolean create​(java.lang.String mailboxName)
                       throws java.io.IOException
        Send a CREATE command to the server.
        Parameters:
        mailboxName - The mailbox name to create.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • delete

        public boolean delete​(java.lang.String mailboxName)
                       throws java.io.IOException
        Send a DELETE command to the server.
        Parameters:
        mailboxName - The mailbox name to delete.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • rename

        public boolean rename​(java.lang.String oldMailboxName,
                              java.lang.String newMailboxName)
                       throws java.io.IOException
        Send a RENAME command to the server.
        Parameters:
        oldMailboxName - The existing mailbox name to rename.
        newMailboxName - The new mailbox name.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • subscribe

        public boolean subscribe​(java.lang.String mailboxName)
                          throws java.io.IOException
        Send a SUBSCRIBE command to the server.
        Parameters:
        mailboxName - The mailbox name to subscribe to.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • unsubscribe

        public boolean unsubscribe​(java.lang.String mailboxName)
                            throws java.io.IOException
        Send a UNSUBSCRIBE command to the server.
        Parameters:
        mailboxName - The mailbox name to unsubscribe from.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • list

        public boolean list​(java.lang.String refName,
                            java.lang.String mailboxName)
                     throws java.io.IOException
        Send a LIST command to the server.
        Parameters:
        refName - The reference name.
        mailboxName - The mailbox name.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • lsub

        public boolean lsub​(java.lang.String refName,
                            java.lang.String mailboxName)
                     throws java.io.IOException
        Send an LSUB command to the server.
        Parameters:
        refName - The reference name.
        mailboxName - The mailbox name.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • status

        public boolean status​(java.lang.String mailboxName,
                              java.lang.String[] itemNames)
                       throws java.io.IOException
        Send a STATUS command to the server.
        Parameters:
        mailboxName - The reference name.
        itemNames - The status data item names.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • append

        public boolean append​(java.lang.String mailboxName,
                              java.lang.String flags,
                              java.lang.String datetime,
                              java.lang.String message)
                       throws java.io.IOException
        Send an APPEND command to the server.
        Parameters:
        mailboxName - The mailbox name.
        flags - The flag parenthesized list (optional).
        datetime - The date/time string (optional).
        message - The message to append.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
        Since:
        3.4
      • append

        @Deprecated
        public boolean append​(java.lang.String mailboxName,
                              java.lang.String flags,
                              java.lang.String datetime)
                       throws java.io.IOException
        Deprecated.
        (3.4) Does not work; the message body is not optional. Use append(String, String, String, String) instead.
        Send an APPEND command to the server.
        Parameters:
        mailboxName - The mailbox name.
        flags - The flag parenthesized list (optional).
        datetime - The date/time string (optional).
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • append

        @Deprecated
        public boolean append​(java.lang.String mailboxName)
                       throws java.io.IOException
        Deprecated.
        (3.4) Does not work; the message body is not optional. Use append(String, String, String, String) instead.
        Send an APPEND command to the server.
        Parameters:
        mailboxName - The mailbox name.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • check

        public boolean check()
                      throws java.io.IOException
        Send a CHECK command to the server.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • close

        public boolean close()
                      throws java.io.IOException
        Send a CLOSE command to the server.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • expunge

        public boolean expunge()
                        throws java.io.IOException
        Send an EXPUNGE command to the server.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • search

        public boolean search​(java.lang.String charset,
                              java.lang.String criteria)
                       throws java.io.IOException
        Send a SEARCH command to the server.
        Parameters:
        charset - The charset (optional).
        criteria - The search criteria.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • search

        public boolean search​(java.lang.String criteria)
                       throws java.io.IOException
        Send a SEARCH command to the server.
        Parameters:
        criteria - The search criteria.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • fetch

        public boolean fetch​(java.lang.String sequenceSet,
                             java.lang.String itemNames)
                      throws java.io.IOException
        Send a FETCH command to the server.
        Parameters:
        sequenceSet - The sequence set to fetch (e.g. 1:4,6,11,100:*)
        itemNames - The item names for the FETCH command. (e.g. BODY.PEEK[HEADER.FIELDS (SUBJECT)]) If multiple item names are requested, these must be enclosed in parentheses, e.g. "(UID FLAGS BODY.PEEK[])"
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
        See Also:
        IMAP.getReplyString(), IMAP.getReplyStrings()
      • store

        public boolean store​(java.lang.String sequenceSet,
                             java.lang.String itemNames,
                             java.lang.String itemValues)
                      throws java.io.IOException
        Send a STORE command to the server.
        Parameters:
        sequenceSet - The sequence set to update (e.g. 2:5)
        itemNames - The item name for the STORE command (i.e. [+|-]FLAGS[.SILENT])
        itemValues - The item values for the STORE command. (e.g. (\Deleted) )
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • copy

        public boolean copy​(java.lang.String sequenceSet,
                            java.lang.String mailboxName)
                     throws java.io.IOException
        Send a COPY command to the server.
        Parameters:
        sequenceSet - The sequence set to fetch.
        mailboxName - The mailbox name.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.
      • uid

        public boolean uid​(java.lang.String command,
                           java.lang.String commandArgs)
                    throws java.io.IOException
        Send a UID command to the server.
        Parameters:
        command - The command for UID.
        commandArgs - The arguments for the command.
        Returns:
        true if the command was successful,false if not.
        Throws:
        java.io.IOException - If a network I/O error occurs.