Package 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 usePOP3Client
.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 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 java.nio.charset.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 java.lang.String
ERROR
(package private) java.lang.String
lastReplyLine
(package private) static java.lang.String
OK
(package private) static java.lang.String
OK_INT
private int
popState
(package private) java.io.BufferedReader
reader
(package private) int
replyCode
(package private) java.util.List<java.lang.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) java.io.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 Description POP3()
The default POP3Client constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_connectAction_()
Performs connection initialization and sets state toAUTHORIZATION_STATE
.void
disconnect()
Disconnects the client from the server, and sets the state toDISCONNECTED_STATE
.void
getAdditionalReply()
Retrieves the additional lines of a multi-line server reply.protected ProtocolCommandSupport
getCommandSupport()
Provide command support to super-classprivate void
getReply()
java.lang.String
getReplyString()
Returns the reply to the last command sent to the server.java.lang.String[]
getReplyStrings()
Returns an array of lines received as a reply to the last command sent to the server.int
getState()
Returns 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, java.lang.String args)
Sends a command an arguments to the server and returns the reply code.int
sendCommand(java.lang.String command)
Sends a command with no arguments to the server and returns the reply code.int
sendCommand(java.lang.String command, java.lang.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, getCharsetName, getConnectTimeout, getDefaultPort, getDefaultTimeout, 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
-
-
-
-
Field Detail
-
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
-
AUTHORIZATION_STATE
public static final int AUTHORIZATION_STATE
A constant representing the POP3 authorization state.- See Also:
- Constant Field Values
-
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
-
OK
static final java.lang.String OK
- See Also:
- Constant Field Values
-
OK_INT
static final java.lang.String OK_INT
- See Also:
- Constant Field Values
-
ERROR
static final java.lang.String ERROR
- See Also:
- Constant Field Values
-
DEFAULT_ENCODING
static final java.nio.charset.Charset DEFAULT_ENCODING
-
popState
private int popState
-
writer
java.io.BufferedWriter writer
-
reader
java.io.BufferedReader reader
-
replyCode
int replyCode
-
lastReplyLine
java.lang.String lastReplyLine
-
replyLines
java.util.List<java.lang.String> replyLines
-
_commandSupport_
protected ProtocolCommandSupport _commandSupport_
A ProtocolCommandSupport object used to manage the registering of ProtocolCommandListeners and the firing of ProtocolCommandEvents.
-
-
Method Detail
-
_connectAction_
protected void _connectAction_() throws java.io.IOException
Performs connection initialization and sets state toAUTHORIZATION_STATE
.- Overrides:
_connectAction_
in classSocketClient
- Throws:
java.io.IOException
- (SocketException) if a problem occurs with the socket
-
disconnect
public void disconnect() throws java.io.IOException
Disconnects the client from the server, and sets the state toDISCONNECTED_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 classSocketClient
- Throws:
java.io.IOException
- If there is an error in disconnecting.
-
getAdditionalReply
public void getAdditionalReply() throws java.io.IOException
Retrieves the additional lines of a multi-line server reply.- Throws:
java.io.IOException
- on error
-
getCommandSupport
protected ProtocolCommandSupport getCommandSupport()
Provide command support to super-class- Overrides:
getCommandSupport
in classSocketClient
- Returns:
- the CommandSupport instance, may be
null
-
getReply
private void getReply() throws java.io.IOException
- Throws:
java.io.IOException
-
getReplyString
public java.lang.String getReplyString()
Returns 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 callgetAdditionalReply()
to fetch the rest of the reply, and then callgetReplyString
again. You only have to worry about this if you are implementing your own client using thesendCommand
methods.- Returns:
- The last server response.
-
getReplyStrings
public java.lang.String[] getReplyStrings()
Returns 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 callgetAdditionalReply()
to fetch the rest of the reply, and then callgetReplyStrings
again. You only have to worry about this if you are implementing your own client using thesendCommand
methods.- Returns:
- The last server response.
-
getState
public int getState()
Returns 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 methodSocketClient.removeProtocolCommandListener(org.apache.commons.net.ProtocolCommandListener)
- Parameters:
listener
- The ProtocolCommandListener to remove
-
sendCommand
public int sendCommand(int command) throws java.io.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
orPOP3Reply.OK_INT
). - Throws:
java.io.IOException
- on error
-
sendCommand
public int sendCommand(int command, java.lang.String args) throws java.io.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
orPOP3Reply.OK_INT
). - Throws:
java.io.IOException
- on error
-
sendCommand
public int sendCommand(java.lang.String command) throws java.io.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
orPOP3Reply.OK_INT
). - Throws:
java.io.IOException
- on error
-
sendCommand
public int sendCommand(java.lang.String command, java.lang.String args) throws java.io.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
orPOP3Reply.OK_INT
). - Throws:
java.io.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.
-
-