Package com.dumbster.smtp
Class SmtpRequest
- java.lang.Object
-
- com.dumbster.smtp.SmtpRequest
-
public class SmtpRequest extends java.lang.ObjectContains an SMTP client request. Handles state transitions using the following state transition table.-----------+------------------------------------------------------------------------------------------------- | State Action +-------------+-----------+-----------+--------------+---------------+---------------+------------ | CONNECT | GREET | MAIL | RCPT | DATA_HDR | DATA_BODY | QUIT -----------+-------------+-----------+-----------+--------------+---------------+---------------+------------ connect | 220/GREET | 503/GREET | 503/MAIL | 503/RCPT | 503/DATA_HDR | 503/DATA_BODY | 503/QUIT ehlo | 503/CONNECT | 250/MAIL | 503/MAIL | 503/RCPT | 503/DATA_HDR | 503/DATA_BODY | 503/QUIT mail | 503/CONNECT | 503/GREET | 250/RCPT | 503/RCPT | 503/DATA_HDR | 503/DATA_BODY | 250/RCPT rcpt | 503/CONNECT | 503/GREET | 503/MAIL | 250/RCPT | 503/DATA_HDR | 503/DATA_BODY | 503/QUIT data | 503/CONNECT | 503/GREET | 503/MAIL | 354/DATA_HDR | 503/DATA_HDR | 503/DATA_BODY | 503/QUIT data_end | 503/CONNECT | 503/GREET | 503/MAIL | 503/RCPT | 250/QUIT | 250/QUIT | 503/QUIT unrecog | 500/CONNECT | 500/GREET | 500/MAIL | 500/RCPT | ---/DATA_HDR | ---/DATA_BODY | 500/QUIT quit | 503/CONNECT | 503/GREET | 503/MAIL | 503/RCPT | 503/DATA_HDR | 503/DATA_BODY | 250/CONNECT blank_line | 503/CONNECT | 503/GREET | 503/MAIL | 503/RCPT | ---/DATA_BODY | ---/DATA_BODY | 503/QUIT rset | 250/GREET | 250/GREET | 250/GREET | 250/GREET | 250/GREET | 250/GREET | 250/GREET vrfy | 252/CONNECT | 252/GREET | 252/MAIL | 252/RCPT | 252/DATA_HDR | 252/DATA_BODY | 252/QUIT expn | 252/CONNECT | 252/GREET | 252/MAIL | 252/RCPT | 252/DATA_HDR | 252/DATA_BODY | 252/QUIT help | 211/CONNECT | 211/GREET | 211/MAIL | 211/RCPT | 211/DATA_HDR | 211/DATA_BODY | 211/QUIT noop | 250/CONNECT | 250/GREET | 250/MAIL | 250/RCPT | 250|DATA_HDR | 250/DATA_BODY | 250/QUIT
-
-
Constructor Summary
Constructors Constructor Description SmtpRequest(SmtpActionType actionType, java.lang.String params, SmtpState state)Create a new SMTP client request.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SmtpRequestcreateRequest(java.lang.String s, SmtpState state)Create an SMTP request object given a line of the input stream from the client and the current internal state.SmtpResponseexecute()Execute the SMTP request returning a response.java.lang.StringgetParams()Get the parameters of this request (remainder of command line once the command is removed.
-
-
-
Constructor Detail
-
SmtpRequest
public SmtpRequest(SmtpActionType actionType, java.lang.String params, SmtpState state)
Create a new SMTP client request.- Parameters:
actionType- type of action/commandparams- remainder of command line once command is removedstate- current SMTP server state
-
-
Method Detail
-
execute
public SmtpResponse execute()
Execute the SMTP request returning a response. This method models the state transition table for the SMTP server.- Returns:
- reponse to the request
-
createRequest
public static SmtpRequest createRequest(java.lang.String s, SmtpState state)
Create an SMTP request object given a line of the input stream from the client and the current internal state.- Parameters:
s- line of inputstate- current state- Returns:
- a populated SmtpRequest object
-
getParams
public java.lang.String getParams()
Get the parameters of this request (remainder of command line once the command is removed.- Returns:
- parameters
-
-