ExtendedPOP3Client
Date: 2016-06-23

org.apache.commons.net.pop3

## Class ExtendedPOP3Client

- java.lang.Object
- - org.apache.commons.net.SocketClient
  - - org.apache.commons.net.pop3.POP3
    - - org.apache.commons.net.pop3.POP3Client
      - - org.apache.commons.net.pop3.POP3SClient
        - - org.apache.commons.net.pop3.ExtendedPOP3Client

-     public class ExtendedPOP3Client
      extends POP3SClient

  A POP3 Cilent class with protocol and authentication extensions support (RFC2449 and RFC2195).
  Since:
    3.0
  See Also:
    `POP3Client`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ExtendedPOP3Client.AUTH_METHOD` The enumeration of currently-supported authentication methods.

  - ### Field Summary

    - ### Fields inherited from class org.apache.commons.net.pop3.POP3

      `_commandSupport_, AUTHORIZATION_STATE, DEFAULT_PORT, DISCONNECTED_STATE, TRANSACTION_STATE, UPDATE_STATE`

    - ### Fields inherited from class org.apache.commons.net.SocketClient

      `_defaultPort_, _hostname_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExtendedPOP3Client()` The default ExtendedPOP3Client constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `auth(ExtendedPOP3Client.AUTH_METHOD method, java.lang.String username, java.lang.String password)` Authenticate to the POP3 server by sending the AUTH command with the selected mechanism, using the given username and the given password.

    - ### Methods inherited from class org.apache.commons.net.pop3.POP3SClient

      `_connectAction_, execTLS, getEnabledCipherSuites, getEnabledProtocols, getHostnameVerifier, getTrustManager, isEndpointCheckingEnabled, setEnabledCipherSuites, setEnabledProtocols, setEndpointCheckingEnabled, setHostnameVerifier, setKeyManager, setTrustManager`

    - ### Methods inherited from class org.apache.commons.net.pop3.POP3Client

      `capa, deleteMessage, listMessage, listMessages, listUniqueIdentifier, listUniqueIdentifiers, login, login, logout, noop, reset, retrieveMessage, retrieveMessageTop, status`

    - ### Methods inherited from class org.apache.commons.net.pop3.POP3

      `disconnect, getAdditionalReply, getCommandSupport, getReplyString, getReplyStrings, getState, removeProtocolCommandistener, sendCommand, sendCommand, sendCommand, sendCommand, setState`

    - ### Methods inherited from class org.apache.commons.net.SocketClient

      `addProtocolCommandListener, connect, connect, connect, connect, connect, connect, createCommandSupport, fireCommandSent, fireReplyReceived, getCharset, getCharsetName, getConnectTimeout, getDefaultPort, getDefaultTimeout, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemotePort, getSendBufferSize, getServerSocketFactory, getSoLinger, getSoTimeout, getTcpNoDelay, isAvailable, isConnected, removeProtocolCommandListener, setCharset, setConnectTimeout, setDefaultPort, setDefaultTimeout, setKeepAlive, setProxy, setReceiveBufferSize, setSendBufferSize, setServerSocketFactory, setSocketFactory, setSoLinger, setSoTimeout, setTcpNoDelay, verifyRemote`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ExtendedPOP3Client

          public ExtendedPOP3Client()
                             throws java.security.NoSuchAlgorithmException

      The default ExtendedPOP3Client constructor. Creates a new Extended POP3 Client.
      Throws:
        `java.security.NoSuchAlgorithmException` - on error

  - ### Method Detail

    - #### auth

          public boolean auth(ExtendedPOP3Client.AUTH_METHOD method,
                     java.lang.String username,
                     java.lang.String password)
                       throws java.io.IOException,
                              java.security.NoSuchAlgorithmException,
                              java.security.InvalidKeyException,
                              java.security.spec.InvalidKeySpecException

      Authenticate to the POP3 server by sending the AUTH command with the selected mechanism, using the given username and the given password.

      Parameters:
        `method` - the `ExtendedPOP3Client.AUTH_METHOD` to use
        `username` - the user name
        `password` - the password
      Returns:
        True if successfully completed, false if not.
      Throws:
        `java.io.IOException` - If an I/O error occurs while either sending a command to the server or receiving a reply from the server.
        `java.security.NoSuchAlgorithmException` - If the CRAM hash algorithm cannot be instantiated by the Java runtime system.
        `java.security.InvalidKeyException` - If the CRAM hash algorithm failed to use the given password.
        `java.security.spec.InvalidKeySpecException` - If the CRAM hash algorithm failed to use the given password.