Class SmtpRequest


  • public class SmtpRequest
    extends java.lang.Object
    Contains 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 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.
      SmtpResponse execute()
      Execute the SMTP request returning a response.
      java.lang.String getParams()
      Get the parameters of this request (remainder of command line once the command is removed.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SmtpRequest

        public SmtpRequest​(SmtpActionType actionType,
                           java.lang.String params,
                           SmtpState state)
        Create a new SMTP client request.
        Parameters:
        actionType - type of action/command
        params - remainder of command line once command is removed
        state - 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 input
        state - 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