Package org.apache.commons.net.pop3
Class POP3SClient
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
- Direct Known Subclasses:
ExtendedPOP3Client
POP3 over SSL processing. Copied from FTPSClient.java and modified to suit POP3. If implicit mode is selected (NOT the default), SSL/TLS negotiation starts
right after the connection has been established. In explicit mode (the default), SSL/TLS negotiation starts when the user calls execTLS() and the server
accepts the command. Implicit usage: POP3SClient c = new POP3SClient(true); c.connect("127.0.0.1", 995); Explicit usage: POP3SClient c = new POP3SClient();
c.connect("127.0.0.1", 110); if (c.execTLS()) { /rest of the commands here/ }
Warning: the hostname is not verified against the certificate by default, use
setHostnameVerifier(HostnameVerifier)
or
setEndpointCheckingEnabled(boolean)
(on Java 1.7+) to enable verification.- Since:
- 3.0
-
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, remoteInetSocketAddress
-
Constructor Summary
ConstructorDescriptionConstructor for POP3SClient, usingDEFAULT_PROTOCOL
i.e.POP3SClient
(boolean implicit) Constructor for POP3SClient, usingDEFAULT_PROTOCOL
i.e.POP3SClient
(boolean implicit, SSLContext ctx) Constructor for POP3SClient, usingDEFAULT_PROTOCOL
i.e.POP3SClient
(String proto) Constructor for POP3SClient.POP3SClient
(String proto, boolean implicit) Constructor for POP3SClient.POP3SClient
(String proto, boolean implicit, SSLContext ctx) Constructor for POP3SClient.POP3SClient
(SSLContext context) Constructor for POP3SClient, usingDEFAULT_PROTOCOL
- TLS - and isImplicit = false -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Because there are so many connect() methods, the _connectAction_() method is provided as a means of performing some action immediately after establishing a connection, rather than reimplementing all the connect() methods.boolean
execTLS()
The TLS command execution.String[]
Returns the names of the cipher suites which could be enabled for use on this connection.String[]
Returns the names of the protocol versions which are currently enabled for use on this connection.Gets the currently configuredHostnameVerifier
.Gets the currently configuredTrustManager
.boolean
Return whether or not endpoint identification using the HTTPS algorithm on Java 1.7+ is enabled.void
setEnabledCipherSuites
(String[] cipherSuites) Controls which particular cipher suites are enabled for use on this connection.void
setEnabledProtocols
(String[] protocolVersions) Controls which particular protocol versions are enabled for use on this connection.void
setEndpointCheckingEnabled
(boolean enable) Automatic endpoint identification checking using the HTTPS algorithm is supported on Java 1.7+.void
setHostnameVerifier
(HostnameVerifier newHostnameVerifier) Override the defaultHostnameVerifier
to use.void
setKeyManager
(KeyManager newKeyManager) Sets aKeyManager
to use.void
setTrustManager
(TrustManager newTrustManager) Override the defaultTrustManager
to use.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, 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
-
Constructor Details
-
POP3SClient
public POP3SClient()Constructor for POP3SClient, usingDEFAULT_PROTOCOL
i.e. TLS Sets security mode to explicit. -
POP3SClient
Constructor for POP3SClient, usingDEFAULT_PROTOCOL
i.e. TLS- Parameters:
implicit
- The security mode,true
for implicit,false
for explicit
-
POP3SClient
Constructor for POP3SClient, usingDEFAULT_PROTOCOL
i.e. TLS- Parameters:
implicit
- The security mode,true
for implicit,false
for explicitctx
- A pre-configured SSL Context.
-
POP3SClient
Constructor for POP3SClient, usingDEFAULT_PROTOCOL
- TLS - and isImplicit = false- Parameters:
context
- A pre-configured SSL Context.- See Also:
-
POP3SClient
Constructor for POP3SClient. Sets security mode to explicit.- Parameters:
proto
- the protocol.
-
POP3SClient
Constructor for POP3SClient.- Parameters:
proto
- the protocol.implicit
- The security mode,true
for implicit,false
for explicit
-
POP3SClient
Constructor for POP3SClient. Sets the default port toDEFAULT_POP3S_PORT
- 995 - if using implicit mode- Parameters:
proto
- the protocol.implicit
- The security mode,true
for implicit,false
for explicitctx
- the context to be used
-
-
Method Details
-
_connectAction_
Because there are so many connect() methods, the _connectAction_() method is provided as a means of performing some action immediately after establishing a connection, rather than reimplementing all the connect() methods.- Overrides:
_connectAction_
in classPOP3
- Throws:
IOException
- If it is thrown by _connectAction_().- See Also:
-
execTLS
The TLS command execution.- Returns:
- TRUE if the command and negotiation succeeded.
- Throws:
SSLException
- If the server reply code is not positive.IOException
- If an I/O error occurs while sending the command or performing the negotiation.
-
getEnabledCipherSuites
Returns the names of the cipher suites which could be enabled for use on this connection. When the underlyingSocket
is not anSSLSocket
instance, returns null.- Returns:
- An array of cipher suite names, or
null
.
-
getEnabledProtocols
Returns the names of the protocol versions which are currently enabled for use on this connection. When the underlyingSocket
is not anSSLSocket
instance, returns null.- Returns:
- An array of protocols, or
null
.
-
getHostnameVerifier
Gets the currently configuredHostnameVerifier
.- Returns:
- A HostnameVerifier instance.
- Since:
- 3.4
-
getTrustManager
Gets the currently configuredTrustManager
.- Returns:
- A TrustManager instance.
-
isEndpointCheckingEnabled
Return whether or not endpoint identification using the HTTPS algorithm on Java 1.7+ is enabled. The default behavior is for this to be disabled.- Returns:
- True if enabled, false if not.
- Since:
- 3.4
-
setEnabledCipherSuites
Controls which particular cipher suites are enabled for use on this connection. Called before server negotiation.- Parameters:
cipherSuites
- The cipher suites.
-
setEnabledProtocols
Controls which particular protocol versions are enabled for use on this connection. I perform setting before a server negotiation.- Parameters:
protocolVersions
- The protocol versions.
-
setEndpointCheckingEnabled
Automatic endpoint identification checking using the HTTPS algorithm is supported on Java 1.7+. The default behavior is for this to be disabled.- Parameters:
enable
- Enable automatic endpoint identification checking using the HTTPS algorithm on Java 1.7+.- Since:
- 3.4
-
setHostnameVerifier
Override the defaultHostnameVerifier
to use.- Parameters:
newHostnameVerifier
- The HostnameVerifier implementation to set ornull
to disable.- Since:
- 3.4
-
setKeyManager
Sets aKeyManager
to use.- Parameters:
newKeyManager
- The KeyManager implementation to set.- See Also:
-
setTrustManager
Override the defaultTrustManager
to use.- Parameters:
newTrustManager
- The TrustManager implementation to set.- See Also:
-