Class POP3SClient

Direct Known Subclasses:
ExtendedPOP3Client

public class POP3SClient extends POP3Client
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
  • Constructor Details

    • POP3SClient

      public POP3SClient()
      Constructor for POP3SClient, using DEFAULT_PROTOCOL i.e. TLS Sets security mode to explicit.
    • POP3SClient

      public POP3SClient(boolean implicit)
      Constructor for POP3SClient, using DEFAULT_PROTOCOL i.e. TLS
      Parameters:
      implicit - The security mode, true for implicit, false for explicit
    • POP3SClient

      public POP3SClient(boolean implicit, SSLContext ctx)
      Constructor for POP3SClient, using DEFAULT_PROTOCOL i.e. TLS
      Parameters:
      implicit - The security mode, true for implicit, false for explicit
      ctx - A pre-configured SSL Context.
    • POP3SClient

      public POP3SClient(SSLContext context)
      Constructor for POP3SClient, using DEFAULT_PROTOCOL - TLS - and isImplicit = false
      Parameters:
      context - A pre-configured SSL Context.
      See Also:
    • POP3SClient

      public POP3SClient(String proto)
      Constructor for POP3SClient. Sets security mode to explicit.
      Parameters:
      proto - the protocol.
    • POP3SClient

      public POP3SClient(String proto, boolean implicit)
      Constructor for POP3SClient.
      Parameters:
      proto - the protocol.
      implicit - The security mode, true for implicit, false for explicit
    • POP3SClient

      public POP3SClient(String proto, boolean implicit, SSLContext ctx)
      Constructor for POP3SClient. Sets the default port to DEFAULT_POP3S_PORT - 995 - if using implicit mode
      Parameters:
      proto - the protocol.
      implicit - The security mode, true for implicit, false for explicit
      ctx - the context to be used
  • Method Details

    • _connectAction_

      protected void _connectAction_() throws IOException
      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 class POP3
      Throws:
      IOException - If it is thrown by _connectAction_().
      See Also:
    • execTLS

      public boolean execTLS() throws SSLException, IOException
      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 underlying Socket is not an SSLSocket 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 underlying Socket is not an SSLSocket instance, returns null.
      Returns:
      An array of protocols, or null.
    • getHostnameVerifier

      Get the currently configured HostnameVerifier.
      Returns:
      A HostnameVerifier instance.
      Since:
      3.4
    • getTrustManager

      Get the currently configured TrustManager.
      Returns:
      A TrustManager instance.
    • isEndpointCheckingEnabled

      public boolean 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

      public void setEnabledCipherSuites(String[] cipherSuites)
      Controls which particular cipher suites are enabled for use on this connection. Called before server negotiation.
      Parameters:
      cipherSuites - The cipher suites.
    • setEnabledProtocols

      public void setEnabledProtocols(String[] protocolVersions)
      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

      public void setEndpointCheckingEnabled(boolean enable)
      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

      public void setHostnameVerifier(HostnameVerifier newHostnameVerifier)
      Override the default HostnameVerifier to use.
      Parameters:
      newHostnameVerifier - The HostnameVerifier implementation to set or null to disable.
      Since:
      3.4
    • setKeyManager

      public void setKeyManager(KeyManager newKeyManager)
      Set a KeyManager to use.
      Parameters:
      newKeyManager - The KeyManager implementation to set.
      See Also:
    • setTrustManager

      public void setTrustManager(TrustManager newTrustManager)
      Override the default TrustManager to use.
      Parameters:
      newTrustManager - The TrustManager implementation to set.
      See Also: