org.apache.commons.net.smtp
Class AuthenticatingSMTPClient

java.lang.Object
  extended by org.apache.commons.net.SocketClient
      extended by org.apache.commons.net.smtp.SMTP
          extended by org.apache.commons.net.smtp.SMTPClient
              extended by org.apache.commons.net.smtp.SMTPSClient
                  extended by org.apache.commons.net.smtp.AuthenticatingSMTPClient

public class AuthenticatingSMTPClient
extends SMTPSClient

An SMTP Client class with authentication support (RFC4954).

Since:
3.0
See Also:
SMTPClient

Nested Class Summary
static class AuthenticatingSMTPClient.AUTH_METHOD
          The enumeration of currently-supported authentication methods.
 
Field Summary
 
Fields inherited from class org.apache.commons.net.smtp.SMTP
_commandSupport_, DEFAULT_PORT, encoding
 
Fields inherited from class org.apache.commons.net.SocketClient
_defaultPort_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL
 
Constructor Summary
AuthenticatingSMTPClient()
          The default AuthenticatingSMTPClient constructor.
AuthenticatingSMTPClient(String protocol)
          Overloaded constructor that takes a protocol specification
 
Method Summary
 boolean auth(AuthenticatingSMTPClient.AUTH_METHOD method, String username, String password)
          Authenticate to the SMTP server by sending the AUTH command with the selected mechanism, using the given username and the given password.
 int ehlo(String hostname)
          A convenience method to send the ESMTP EHLO command to the server, receive the reply, and return the reply code.
 boolean elogin()
          Login to the ESMTP server by sending the EHLO command with the client hostname as an argument.
 boolean elogin(String hostname)
          Login to the ESMTP server by sending the EHLO command with the given hostname as an argument.
 int[] getEnhancedReplyCode()
          Returns the integer values of the enhanced reply code of the last SMTP reply.
 
Methods inherited from class org.apache.commons.net.smtp.SMTPSClient
_connectAction_, execTLS, getEnabledCipherSuites, getEnabledProtocols, getKeyManager, getTrustManager, setEnabledCipherSuites, setEnabledProtocols, setKeyManager, setTrustManager
 
Methods inherited from class org.apache.commons.net.smtp.SMTPClient
addRecipient, addRecipient, completePendingCommand, listHelp, listHelp, login, login, logout, reset, sendMessageData, sendNoOp, sendShortMessageData, sendSimpleMessage, sendSimpleMessage, setSender, setSender, verify
 
Methods inherited from class org.apache.commons.net.smtp.SMTP
data, disconnect, expn, getCommandSupport, getReply, getReplyCode, getReplyString, getReplyStrings, helo, help, help, mail, noop, quit, rcpt, removeProtocolCommandistener, rset, saml, send, sendCommand, sendCommand, sendCommand, sendCommand, soml, turn, vrfy
 
Methods inherited from class org.apache.commons.net.SocketClient
addProtocolCommandListener, connect, connect, connect, connect, connect, connect, createCommandSupport, fireCommandSent, fireReplyReceived, getConnectTimeout, getDefaultPort, getDefaultTimeout, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemotePort, getSendBufferSize, getServerSocketFactory, getSoLinger, getSoTimeout, getTcpNoDelay, isAvailable, isConnected, removeProtocolCommandListener, 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
 

Constructor Detail

AuthenticatingSMTPClient

public AuthenticatingSMTPClient()
                         throws NoSuchAlgorithmException
The default AuthenticatingSMTPClient constructor. Creates a new Authenticating SMTP Client.

Throws:
NoSuchAlgorithmException

AuthenticatingSMTPClient

public AuthenticatingSMTPClient(String protocol)
                         throws NoSuchAlgorithmException
Overloaded constructor that takes a protocol specification

Parameters:
protocol - The protocol to use
Throws:
NoSuchAlgorithmException
Method Detail

ehlo

public int ehlo(String hostname)
         throws IOException
A convenience method to send the ESMTP EHLO command to the server, receive the reply, and return the reply code.

Parameters:
hostname - The hostname of the sender.
Returns:
The reply code received from the server.
Throws:
SMTPConnectionClosedException - If the SMTP server prematurely closes the connection as a result of the client being idle or some other reason causing the server to send SMTP reply code 421. This exception may be caught either as an IOException or independently as itself.
IOException - If an I/O error occurs while either sending the command or receiving the server reply.

elogin

public boolean elogin(String hostname)
               throws IOException
Login to the ESMTP server by sending the EHLO command with the given hostname as an argument. Before performing any mail commands, you must first login.

Parameters:
hostname - The hostname with which to greet the SMTP server.
Returns:
True if successfully completed, false if not.
Throws:
SMTPConnectionClosedException - If the SMTP server prematurely closes the connection as a result of the client being idle or some other reason causing the server to send SMTP reply code 421. This exception may be caught either as an IOException or independently as itself.
IOException - If an I/O error occurs while either sending a command to the server or receiving a reply from the server.

elogin

public boolean elogin()
               throws IOException
Login to the ESMTP server by sending the EHLO command with the client hostname as an argument. Before performing any mail commands, you must first login.

Returns:
True if successfully completed, false if not.
Throws:
SMTPConnectionClosedException - If the SMTP server prematurely closes the connection as a result of the client being idle or some other reason causing the server to send SMTP reply code 421. This exception may be caught either as an IOException or independently as itself.
IOException - If an I/O error occurs while either sending a command to the server or receiving a reply from the server.

getEnhancedReplyCode

public int[] getEnhancedReplyCode()
Returns the integer values of the enhanced reply code of the last SMTP reply.

Returns:
The integer values of the enhanced reply code of the last SMTP reply. First digit is in the first array element.

auth

public boolean auth(AuthenticatingSMTPClient.AUTH_METHOD method,
                    String username,
                    String password)
             throws IOException,
                    NoSuchAlgorithmException,
                    InvalidKeyException,
                    InvalidKeySpecException
Authenticate to the SMTP server by sending the AUTH command with the selected mechanism, using the given username and the given password.

Parameters:
method - the method to use, one of the AuthenticatingSMTPClient.AUTH_METHOD enum values
username - the user name. If the method is XOAUTH, then this is used as the plain text oauth protocol parameter string which is Base64-encoded for transmission.
password - the password for the username. Ignored for XOAUTH.
Returns:
True if successfully completed, false if not.
Throws:
SMTPConnectionClosedException - If the SMTP server prematurely closes the connection as a result of the client being idle or some other reason causing the server to send SMTP reply code 421. This exception may be caught either as an IOException or independently as itself.
IOException - If an I/O error occurs while either sending a command to the server or receiving a reply from the server.
NoSuchAlgorithmException - If the CRAM hash algorithm cannot be instantiated by the Java runtime system.
InvalidKeyException - If the CRAM hash algorithm failed to use the given password.
InvalidKeySpecException - If the CRAM hash algorithm failed to use the given password.


Copyright © 2001-2012 The Apache Software Foundation. All Rights Reserved.