org.apache.commons.net.pop3

## Class POP3

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

- Direct Known Subclasses:
    POP3Client

      public class POP3
      extends SocketClient

  The POP3 class is not meant to be used by itself and is provided only so that you may easily implement your own POP3 client if you so desire. If you have no need to perform your own implementation, you should use `POP3Client`.

  Rather than list it separately for each method, we mention here that every method communicating with the server and throwing an IOException can also throw a `MalformedServerReplyException` , which is a subclass of IOException. A MalformedServerReplyException will be thrown when the reply received from the server deviates enough from the protocol specification that it cannot be interpreted in a useful manner despite attempts to be as lenient as possible.

  See Also:
    `POP3Client`, `MalformedServerReplyException`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ProtocolCommandSupport` | `_commandSupport_` A ProtocolCommandSupport object used to manage the registering of ProtocolCommandListeners and the firing of ProtocolCommandEvents.
    `static int` | `AUTHORIZATION_STATE` A constant representing the POP3 authorization state.
    `(package private) static Charset` | `DEFAULT_ENCODING`
    `static int` | `DEFAULT_PORT` The default POP3 port.
    `static int` | `DISCONNECTED_STATE` A constant representing the state where the client is not yet connected to a POP3 server.
    `(package private) static String` | `ERROR`
    `(package private) String` | `lastReplyLine`
    `(package private) static String` | `OK`
    `(package private) static String` | `OK_INT`
    `(package private) BufferedReader` | `reader`
    `(package private) int` | `replyCode`
    `(package private) List<String>` | `replyLines`
    `static int` | `TRANSACTION_STATE` A constant representing the POP3 transaction state.
    `static int` | `UPDATE_STATE` A constant representing the POP3 update state.
    `(package private) BufferedWriter` | `writer`

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

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `POP3()` The default POP3Client constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `_connectAction_()` Performs connection initialization and sets state to `AUTHORIZATION_STATE`.
    `void` | `disconnect()` Disconnects the client from the server, and sets the state to `DISCONNECTED_STATE`.
    `void` | `getAdditionalReply()` Gets the additional lines of a multi-line server reply.
    `protected ProtocolCommandSupport` | `getCommandSupport()` Provide command support to super-class
    `String` | `getReplyString()` Gets the reply to the last command sent to the server.
    `String[]` | `getReplyStrings()` Gets an array of lines received as a reply to the last command sent to the server.
    `int` | `getState()` Gets the current POP3 client state.
    `void` | `removeProtocolCommandistener(ProtocolCommandListener listener)` Removes a ProtocolCommandListener.
    `int` | `sendCommand(int command)` Sends a command with no arguments to the server and returns the reply code.
    `int` | `sendCommand(int command, String args)` Sends a command an arguments to the server and returns the reply code.
    `int` | `sendCommand(String command)` Sends a command with no arguments to the server and returns the reply code.
    `int` | `sendCommand(String command, String args)` Sends a command an arguments to the server and returns the reply code.
    `void` | `setState(int state)` Sets the internal POP3 state.

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

      `addProtocolCommandListener, applySocketAttributes, checkOpenOutputStream, connect, connect, connect, connect, connect, connect, createCommandSupport, fireCommandSent, fireReplyReceived, getCharset, getConnectTimeout, getDefaultPort, getDefaultTimeout, getHostAddress, getHostAddress, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemoteInetSocketAddress, 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`

- - ### Field Detail

    - #### _commandSupport_

          protected ProtocolCommandSupport _commandSupport_

      A ProtocolCommandSupport object used to manage the registering of ProtocolCommandListeners and the firing of ProtocolCommandEvents.

    - #### AUTHORIZATION_STATE

          public static final int AUTHORIZATION_STATE

      A constant representing the POP3 authorization state.
      See Also:
        Constant Field Values

    - #### DEFAULT_ENCODING

          static final Charset DEFAULT_ENCODING

    - #### DEFAULT_PORT

          public static final int DEFAULT_PORT

      The default POP3 port. Set to 110 according to RFC 1288.
      See Also:
        Constant Field Values

    - #### DISCONNECTED_STATE

          public static final int DISCONNECTED_STATE

      A constant representing the state where the client is not yet connected to a POP3 server.
      See Also:
        Constant Field Values

    - #### ERROR

          static final String ERROR

      See Also:
        Constant Field Values

    - #### lastReplyLine

          String lastReplyLine

    - #### OK

          static final String OK

      See Also:
        Constant Field Values

    - #### OK_INT

          static final String OK_INT

      See Also:
        Constant Field Values

    - #### reader

          BufferedReader reader

    - #### replyCode

          int replyCode

    - #### replyLines

          List<String> replyLines

    - #### TRANSACTION_STATE

          public static final int TRANSACTION_STATE

      A constant representing the POP3 transaction state.
      See Also:
        Constant Field Values

    - #### UPDATE_STATE

          public static final int UPDATE_STATE

      A constant representing the POP3 update state.
      See Also:
        Constant Field Values

    - #### writer

          BufferedWriter writer

  - ### Constructor Detail

    - #### POP3

          public POP3()

      The default POP3Client constructor. Initializes the state to `DISCONNECTED_STATE`.

  - ### Method Detail

    - #### _connectAction_

          protected void _connectAction_()
                                  throws IOException

      Performs connection initialization and sets state to `AUTHORIZATION_STATE`.
      Overrides:
        `_connectAction_` in class `SocketClient`
      Throws:
        `IOException` - (SocketException) if a problem occurs with the socket

    - #### disconnect

          public void disconnect()
                          throws IOException

      Disconnects the client from the server, and sets the state to `DISCONNECTED_STATE`. The reply text information from the last issued command is voided to allow garbage collection of the memory used to store that information.
      Overrides:
        `disconnect` in class `SocketClient`
      Throws:
        `IOException` - If there is an error in disconnecting.

    - #### getAdditionalReply

          public void getAdditionalReply()
                                  throws IOException

      Gets the additional lines of a multi-line server reply.
      Throws:
        `IOException` - on error

    - #### getCommandSupport

          protected ProtocolCommandSupport getCommandSupport()

      Provide command support to super-class
      Overrides:
        `getCommandSupport` in class `SocketClient`
      Returns:
        the CommandSupport instance, may be `null`

    - #### getReplyString

          public String getReplyString()

      Gets the reply to the last command sent to the server. The value is a single string containing all the reply lines including newlines. If the reply is a single line, but its format ndicates it should be a multiline reply, then you must call `getAdditionalReply()` to fetch the rest of the reply, and then call `getReplyString` again. You only have to worry about this if you are implementing your own client using the `sendCommand` methods.
      Returns:
        The last server response.

    - #### getReplyStrings

          public String[] getReplyStrings()

      Gets an array of lines received as a reply to the last command sent to the server. The lines have end of lines truncated. If the reply is a single line, but its format ndicates it should be a multiline reply, then you must call `getAdditionalReply()` to fetch the rest of the reply, and then call `getReplyStrings` again. You only have to worry about this if you are implementing your own client using the `sendCommand` methods.
      Returns:
        The last server response.

    - #### getState

          public int getState()

      Gets the current POP3 client state.
      Returns:
        The current POP3 client state.

    - #### removeProtocolCommandistener

          public void removeProtocolCommandistener(ProtocolCommandListener listener)

      Removes a ProtocolCommandListener. Delegates this incorrectly named method - removeProtocolCommandistener (note the missing "L")- to the correct method `SocketClient.removeProtocolCommandListener(org.apache.commons.net.ProtocolCommandListener)`
      Parameters:
        `listener` - The ProtocolCommandListener to remove

    - #### sendCommand

          public int sendCommand(int command)
                          throws IOException

      Sends a command with no arguments to the server and returns the reply code.
      Parameters:
        `command` - The POP3 command to send (one of the POP3Command constants).
      Returns:
        The server reply code (either `POP3Reply.OK`, `POP3Reply.ERROR` or `POP3Reply.OK_INT`).
      Throws:
        `IOException` - on error

    - #### sendCommand

          public int sendCommand(int command,
                                 String args)
                          throws IOException

      Sends a command an arguments to the server and returns the reply code.
      Parameters:
        `command` - The POP3 command to send (one of the POP3Command constants).
        `args` - The command arguments.
      Returns:
        The server reply code (either `POP3Reply.OK`, `POP3Reply.ERROR` or `POP3Reply.OK_INT`).
      Throws:
        `IOException` - on error

    - #### sendCommand

          public int sendCommand(String command)
                          throws IOException

      Sends a command with no arguments to the server and returns the reply code.
      Parameters:
        `command` - The POP3 command to send.
      Returns:
        The server reply code (either `POP3Reply.OK`, `POP3Reply.ERROR` or `POP3Reply.OK_INT`).
      Throws:
        `IOException` - on error

    - #### sendCommand

          public int sendCommand(String command,
                                 String args)
                          throws IOException

      Sends a command an arguments to the server and returns the reply code.
      Parameters:
        `command` - The POP3 command to send.
        `args` - The command arguments.
      Returns:
        The server reply code (either `POP3Reply.OK`, `POP3Reply.ERROR` or `POP3Reply.OK_INT`).
      Throws:
        `IOException` - on error

    - #### setState

          public void setState(int state)

      Sets the internal POP3 state.
      Parameters:
        `state` - the new state. This must be one of the `_STATE` constants.