org.apache.commons.net.smtp
public class SMTP extends SocketClient
You should keep in mind that the SMTP server may choose to prematurely
close a connection for various reasons. The SMTP class will detect a
premature SMTP server connection closing when it receives a
SMTPReply.SERVICE_NOT_AVAILABLE
response to a command.
When that occurs, the SMTP class method encountering that reply will throw
an SMTPConnectionClosedException
.
SMTPConectionClosedException
is a subclass of IOException
and therefore need not be
caught separately, but if you are going to catch it separately, its
catch block must appear before the more general IOException
catch block. When you encounter an
SMTPConnectionClosedException
, you must disconnect the connection with
disconnect()
to properly clean up the system resources used by SMTP. Before
disconnecting, you may check the
last reply code and text with
getReplyCode
,
getReplyString
,
and getReplyStrings
.
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: SMTPClient SMTPConnectionClosedException
Field Summary | |
---|---|
static int | DEFAULT_PORT The default SMTP port (25). |
protected ProtocolCommandSupport | _commandSupport_
A ProtocolCommandSupport object used to manage the registering of
ProtocolCommandListeners and te firing of ProtocolCommandEvents.
|
Constructor Summary | |
---|---|
SMTP()
The default SMTP constructor. |
Method Summary | |
---|---|
void | addProtocolCommandListener(ProtocolCommandListener listener)
Adds a ProtocolCommandListener. |
int | data()
A convenience method to send the SMTP DATA command to the server,
receive the reply, and return the reply code.
|
void | disconnect()
Closes the connection to the SMTP server and sets to null
some internal data so that the memory may be reclaimed by the
garbage collector. |
int | expn(String name)
A convenience method to send the SMTP VRFY command to the server,
receive the reply, and return the reply code.
|
int | getReply()
Fetches a reply from the SMTP server and returns the integer reply
code. |
int | getReplyCode()
Returns the integer value of the reply code of the last SMTP reply.
|
String | getReplyString()
Returns the entire text of the last SMTP server response exactly
as it was received, including all end of line markers in NETASCII
format.
|
String[] | getReplyStrings()
Returns the lines of text from the last SMTP server response as an array
of strings, one entry per line. |
int | helo(String hostname)
A convenience method to send the SMTP HELO command to the server,
receive the reply, and return the reply code.
|
int | help()
A convenience method to send the SMTP HELP command to the server,
receive the reply, and return the reply code.
|
int | help(String command)
A convenience method to send the SMTP HELP command to the server,
receive the reply, and return the reply code.
|
int | mail(String reversePath)
A convenience method to send the SMTP MAIL command to the server,
receive the reply, and return the reply code.
|
int | noop()
A convenience method to send the SMTP NOOP command to the server,
receive the reply, and return the reply code.
|
int | quit()
A convenience method to send the SMTP QUIT command to the server,
receive the reply, and return the reply code.
|
int | rcpt(String forwardPath)
A convenience method to send the SMTP RCPT command to the server,
receive the reply, and return the reply code.
|
void | removeProtocolCommandistener(ProtocolCommandListener listener)
Removes a ProtocolCommandListener. |
int | rset()
A convenience method to send the SMTP RSET command to the server,
receive the reply, and return the reply code.
|
int | saml(String reversePath)
A convenience method to send the SMTP SAML command to the server,
receive the reply, and return the reply code.
|
int | send(String reversePath)
A convenience method to send the SMTP SEND command to the server,
receive the reply, and return the reply code.
|
int | sendCommand(String command, String args)
Sends an SMTP command to the server, waits for a reply and returns the
numerical response code. |
int | sendCommand(int command, String args)
Sends an SMTP command to the server, waits for a reply and returns the
numerical response code. |
int | sendCommand(String command)
Sends an SMTP command with no arguments to the server, waits for a
reply and returns the numerical response code. |
int | sendCommand(int command)
Sends an SMTP command with no arguments to the server, waits for a
reply and returns the numerical response code. |
int | soml(String reversePath)
A convenience method to send the SMTP SOML command to the server,
receive the reply, and return the reply code.
|
int | turn()
A convenience method to send the SMTP TURN command to the server,
receive the reply, and return the reply code.
|
int | vrfy(String user)
A convenience method to send the SMTP VRFY command to the server,
receive the reply, and return the reply code.
|
protected void | _connectAction_() Initiates control connections and gets initial reply. |
DEFAULT_PORT
and initializes internal data structures
for saving SMTP reply information.
_commandSupport_
.
Parameters: listener The ProtocolCommandListener to add.
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.
Throws: IOException If an error occurs while disconnecting.
Parameters: name The name to expand.
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.
getReplyString
or
getReplyStrings
. Only use this
method if you are implementing your own SMTP client or if you need to
fetch a secondary response from the SMTP server.
Returns: The integer value of the reply code of the fetched SMTP reply.
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 receiving the server reply.
connect
is of type void.
Returns: The integer value of the reply code of the last SMTP reply.
Returns: The entire text from the last SMTP response as a String.
Returns: The lines of text from the last SMTP response as an array.
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.
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.
Parameters: command The command name on which to request help.
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.
Parameters: reversePath The reverese path.
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.
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.
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.
Parameters: forwardPath The forward path.
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.
_commandSupport_
.
Parameters: listener The ProtocolCommandListener to remove.
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.
Parameters: reversePath The reverese path.
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.
Parameters: reversePath The reverese path.
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.
getReplyString
or
getReplyStrings
.
Parameters: command The text representation of the SMTP command to send. args The arguments to the SMTP command. If this parameter is set to null, then the command is sent with no argument.
Returns: The integer value of the SMTP reply code returned by the server in response to the command.
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.
getReplyString
or
getReplyStrings
.
Parameters: command The SMTPCommand constant corresponding to the SMTP command to send. args The arguments to the SMTP command. If this parameter is set to null, then the command is sent with no argument.
Returns: The integer value of the SMTP reply code returned by the server in response to the command.
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.
getReplyString
or
getReplyStrings
.
Parameters: command The text representation of the SMTP command to send.
Returns: The integer value of the SMTP reply code returned by the server in response to the command.
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.
getReplyString
or
getReplyStrings
.
Parameters: command The SMTPCommand constant corresponding to the SMTP command to send.
Returns: The integer value of the SMTP reply code returned by the server in response to the command.
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.
Parameters: reversePath The reverese path.
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.
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.
Parameters: user The user address to verify.
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.