|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectthings.data.transport.smtp.CleanSMTPClient
public class CleanSMTPClient
This is a super clean SMTP client. No bs.
The client will propagate any InterruptedExceptions like a good THINGs citizen, though it will then mark the client as BAD and it will no longer work--through exceptions for any call thereafter.
Version History
EPG - Adapted from another project - 23 NOV 06
| Field Summary | |
|---|---|
static int |
CONNECTION_RETRIES
|
static int |
CONNECTION_TIMEOUT
|
| Constructor Summary | |
|---|---|
CleanSMTPClient(Logger theLogger)
Create a new client. |
|
CleanSMTPClient(Logger theLogger,
java.lang.String name)
Create a new client with an imposed name. |
|
| Method Summary | |
|---|---|
Reply |
connect(java.lang.String connectAddress,
int connectPort)
Start a connection. |
void |
debuggingOff()
Turn debugging off. |
void |
debuggingOn()
Turn debugging on. |
boolean |
debuggingState()
Get the current debugging state. |
Reply |
disconnect()
Start a connection. |
Reply |
done()
Quit the client. |
void |
flush()
Try to flush. |
java.lang.String |
getName()
Get client name. |
SMTPState |
getState()
Get the state. |
Reply |
login(java.lang.String hostname)
HELO with the hostname--no authentication. |
void |
post(java.lang.String message)
Post as a message. |
void |
postit(java.lang.String message)
Post as a message. |
Reply |
recipient(java.lang.String recipientText)
Set the recipient using RCPT TO. |
Reply |
recipient(java.lang.String recipientText,
DSN dsn)
Set the recipient using RCPT TO. |
Reply |
reset()
RESET the connection. |
Reply |
sendData(java.io.InputStream... ios)
Send DATA. |
Reply |
sender(java.lang.String senderText)
Set the sender using MAIL FROM. |
Reply |
sender(java.lang.String senderText,
DSN dsn)
Set the sender using MAIL FROM. |
void |
setSocketRetries(int retries)
Number of times a socket read will be retried after a timeout before completely giving up. The default value is CONNECTION_RETRIES. |
void |
setTimeout(int timeout)
Set the socket timeout for each connection. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int CONNECTION_TIMEOUT
public static final int CONNECTION_RETRIES
| Constructor Detail |
|---|
public CleanSMTPClient(Logger theLogger,
java.lang.String name)
theLogger - the logger to use. It will be quiet unless you start debugging.name - the client's name. It will be slightly altered for uniqueness.public CleanSMTPClient(Logger theLogger)
theLogger - the logger to use. It will be quiet unless you start debugging.| Method Detail |
|---|
public java.lang.String getName()
getName in interface SMTPClientpublic SMTPState getState()
getState in interface SMTPClientpublic void setTimeout(int timeout)
It will take effect whenever a new connection is established.
setTimeout in interface SMTPClienttimeout - the timeout in milliseconds.public void setSocketRetries(int retries)
It will take effect whenever a new operation is started.
setSocketRetries in interface SMTPClientretries - Number of retries. Zero or a negative number is the same as no retries.
public Reply connect(java.lang.String connectAddress,
int connectPort)
throws ThingsException,
java.lang.InterruptedException
connect in interface SMTPClientconnectAddress - connectPort -
ThingsException - will always be fatal at this point.
java.lang.InterruptedException
public Reply disconnect()
throws ThingsException,
java.lang.InterruptedException
disconnect in interface SMTPClientThingsException - which will never happen, since we'll just abandon the bad connection.
java.lang.InterruptedException
public Reply login(java.lang.String hostname)
throws ThingsException,
java.lang.InterruptedException
login in interface SMTPClienthostname -
ThingsException
java.lang.InterruptedException
public Reply sender(java.lang.String senderText)
throws ThingsException,
java.lang.InterruptedException
sender in interface SMTPClientsenderText - as a valid SMTP address.
ThingsException - if not ready for MAIL FROM or actual transmission problem.
java.lang.InterruptedException
public Reply sender(java.lang.String senderText,
DSN dsn)
throws ThingsException,
java.lang.InterruptedException
sender in interface SMTPClientsenderText - as a valid SMTP address.dsn - command. If null, it will be ignored.
ThingsException - if not ready for MAIL FROM or actual transmission problem.
java.lang.InterruptedException
public Reply recipient(java.lang.String recipientText)
throws ThingsException,
java.lang.InterruptedException
recipient in interface SMTPClientrecipientText - as a valid SMTP address.
ThingsException - if not ready for RCPT TO or actual transmission problem.
java.lang.InterruptedException
public Reply recipient(java.lang.String recipientText,
DSN dsn)
throws ThingsException,
java.lang.InterruptedException
recipient in interface SMTPClientrecipientText - as a valid SMTP address.dsn - command. If null, it will be ignored.
ThingsException - if not ready for RCPT TO or actual transmission problem.
java.lang.InterruptedException
public Reply reset()
throws ThingsException,
java.lang.InterruptedException
reset in interface SMTPClientThingsException - if the connection is made and logged in.
java.lang.InterruptedException
public Reply sendData(java.io.InputStream... ios)
throws ThingsException,
java.lang.InterruptedException
sendData in interface SMTPClientios - Stream to send. You handle any buffering. Null entries are allowed and ignored.
ThingsException
java.lang.InterruptedException
public Reply done()
throws ThingsException,
java.lang.InterruptedException
done in interface SMTPClientThingsException
java.lang.InterruptedExceptionpublic void debuggingOn()
debuggingOn in interface Debuggablepublic void debuggingOff()
debuggingOff in interface Debuggablepublic boolean debuggingState()
debuggingState in interface Debuggable
public void post(java.lang.String message)
throws ThingsException
post in interface StringPostermessage - String to post
ThingsExceptionpublic void postit(java.lang.String message)
postit in interface StringPostermessage - String to postpublic void flush()
flush in interface StringPoster
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||