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

      • 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.
      • 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

        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
      • 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
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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()
      • list

        public boolean list​(java.lang.String refName,
                            java.lang.String mailboxName)
                     throws java.io.IOException
        Send a LIST command to the server. Quotes the parameters if necessary.
        Parameters:
        refName - The reference name If empty, indicates that the mailbox name is interpreted as by SELECT.
        mailboxName - The mailbox name. If empty, this is a special request to return the hierarchy delimiter and the root name of the name given in the reference
        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 user,
                             java.lang.String password)
                      throws java.io.IOException
        Login to the IMAP server with the given user and password. You must first connect to the server with connect before attempting to log in. 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:
        user - 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.
      • 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.
      • lsub

        public boolean lsub​(java.lang.String refName,
                            java.lang.String mailboxName)
                     throws java.io.IOException
        Send an LSUB command to the server. Quotes the parameters if necessary.
        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.
      • 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 time out 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.