public class POP3Client extends POP3
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.
_commandSupport_, AUTHORIZATION_STATE, DEFAULT_PORT, DISCONNECTED_STATE, TRANSACTION_STATE, UPDATE_STATE
_defaultPort_, _hostname_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL
Constructor and Description |
---|
POP3Client() |
Modifier and Type | Method and Description |
---|---|
boolean |
capa()
Send a CAPA command to the POP3 server.
|
boolean |
deleteMessage(int messageId)
Delete a message from the POP3 server.
|
POP3MessageInfo |
listMessage(int messageId)
List an individual message.
|
POP3MessageInfo[] |
listMessages()
List all messages.
|
POP3MessageInfo |
listUniqueIdentifier(int messageId)
List the unique identifier for a message.
|
POP3MessageInfo[] |
listUniqueIdentifiers()
List the unique identifiers for all messages.
|
boolean |
login(String username,
String password)
Login to the POP3 server with the given username and password.
|
boolean |
login(String username,
String timestamp,
String secret)
Login to the POP3 server with the given username and authentication information.
|
boolean |
logout()
Logout of the POP3 server.
|
boolean |
noop()
Send a NOOP command to the POP3 server.
|
boolean |
reset()
Reset the POP3 session.
|
Reader |
retrieveMessage(int messageId)
Retrieve a message from the POP3 server.
|
Reader |
retrieveMessageTop(int messageId,
int numLines)
Retrieve only the specified top number of lines of a message from the POP3 server.
|
POP3MessageInfo |
status()
Get the mailbox status.
|
_connectAction_, disconnect, getAdditionalReply, getCommandSupport, getReplyString, getReplyStrings, getState, removeProtocolCommandistener, sendCommand, sendCommand, sendCommand, sendCommand, setState
addProtocolCommandListener, applySocketAttributes, 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
public POP3Client()
public boolean capa() throws IOException
IOException
- If a network I/O error occurs in the process of sending the CAPA command.public boolean deleteMessage(int messageId) throws IOException
reset
command. Messages marked for deletion are only deleted by the server on logout
. A delete attempt can only succeed
if the client is in the TRANSACTION_STATE
.messageId
- The message number to delete.IOException
- If a network I/O error occurs in the process of sending the delete command.public POP3MessageInfo listMessage(int messageId) throws IOException
TRANSACTION_STATE
. Returns a POP3MessageInfo instance containing the number of the listed message and the size of the message in bytes. Returns null
if the list attempt fails (e.g., if the specified message number does not exist).messageId
- The number of the message list.IOException
- If a network I/O error occurs in the process of sending the list command.public POP3MessageInfo[] listMessages() throws IOException
TRANSACTION_STATE
. Returns an array of POP3MessageInfo instances, each containing the number of a message and its size in bytes. If there are no messages, this method
returns a zero length array. If the list attempt fails, it returns null.IOException
- If a network I/O error occurs in the process of sending the list command.public POP3MessageInfo listUniqueIdentifier(int messageId) throws IOException
TRANSACTION_STATE
. Returns a POP3MessageInfo instance containing the number of the listed
message and the unique identifier for that message. Returns null if the list attempt fails (e.g., if the specified message number does not exist).messageId
- The number of the message list.IOException
- If a network I/O error occurs in the process of sending the list unique identifier command.public POP3MessageInfo[] listUniqueIdentifiers() throws IOException
TRANSACTION_STATE
. Returns an array of POP3MessageInfo instances, each containing the number
of a message and its unique identifier. If there are no messages, this method returns a zero length array. If the list attempt fails, it returns null.IOException
- If a network I/O error occurs in the process of sending the list unique identifier command.public boolean login(String username, String password) throws IOException
connect
before attempting to login. A login attempt is only valid if the client is in the
AUTHORIZATION_STATE
. After logging in, the client enters the
TRANSACTION_STATE
.username
- The account name being logged in to.password
- The plain text password of the account.IOException
- If a network I/O error occurs in the process of logging in.public boolean login(String username, String timestamp, String secret) throws IOException, NoSuchAlgorithmException
getReplyString
and
parse out the timestamp information yourself.
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 AUTHORIZATION_STATE
. After logging in, the client
enters the TRANSACTION_STATE
. After connecting, you must parse out the server specific
information to use as a timestamp, and pass that information to this method. The secret is a shared secret known to you and the server. See RFC 1939 for
more details regarding the APOP command.
username
- The account name being logged in to.timestamp
- The timestamp string to combine with the secret.secret
- The shared secret which produces the MD5 digest when combined with the timestamp.IOException
- If a network I/O error occurs in the process of logging in.NoSuchAlgorithmException
- If the MD5 encryption algorithm cannot be instantiated by the Java runtime system.public boolean logout() throws IOException
disconnect
. A logout
attempt is valid in any state. If the client is in the TRANSACTION_STATE
, it enters the
UPDATE_STATE
on a successful logout.IOException
- If a network I/O error occurs in the process of logging out.public boolean noop() throws IOException
TRANSACTION_STATE
.IOException
- If a network I/O error occurs in the process of sending the NOOP command.public boolean reset() throws IOException
TRANSACTION_STATE
.IOException
- If a network I/O error occurs in the process of sending the reset command.public Reader retrieveMessage(int messageId) throws IOException
TRANSACTION_STATE
You must not issue any commands to the POP3 server (i.e., call any other methods) until you finish reading the message from the returned BufferedReader instance. The POP3 protocol uses the same stream for issuing commands as it does for returning results. Therefore the returned BufferedReader actually reads directly from the POP3 connection. After the end of message has been reached, new commands can be executed and their replies read. If you do not follow these requirements, your program will not work properly.
messageId
- The number of the message to fetch.BufferedReader
in order to use the BufferedReader#readLine()
method. Returns null if the retrieval
attempt fails (e.g., if the specified message number does not exist).IOException
- If a network I/O error occurs in the process of sending the retrieve message command.public Reader retrieveMessageTop(int messageId, int numLines) throws IOException
TRANSACTION_STATE
You must not issue any commands to the POP3 server (i.e., call any other methods) until you finish reading the message from the returned BufferedReader instance. The POP3 protocol uses the same stream for issuing commands as it does for returning results. Therefore the returned BufferedReader actually reads directly from the POP3 connection. After the end of message has been reached, new commands can be executed and their replies read. If you do not follow these requirements, your program will not work properly.
messageId
- The number of the message to fetch.numLines
- The top number of lines to fetch. This must be >= 0.BufferedReader
in order to use the BufferedReader#readLine()
method.
Returns null if the retrieval attempt fails (e.g., if the specified message number does not exist).IOException
- If a network I/O error occurs in the process of sending the top command.public POP3MessageInfo status() throws IOException
TRANSACTION_STATE
. Returns a POP3MessageInfo instance containing the number of messages in the mailbox and the total size of the messages in bytes.
Returns null if the status the attempt fails.IOException
- If a network I/O error occurs in the process of sending the status command.Copyright © 2001–2022 The Apache Software Foundation. All rights reserved.