Skip to content

SMTP-lab

stateDiagram
    [*] --> Start
    Start --> CreateSocket: Create Socket and Connect to Mail Server
    CreateSocket --> SendHELO: Send HELO Command
    SendHELO --> ReceiveHELOResponse: Receive HELO Response
    ReceiveHELOResponse --> CheckHELOResponse: Check HELO Response
    CheckHELOResponse --> SendMAILFROM: Send MAIL FROM Command
    SendMAILFROM --> ReceiveMAILFROMResponse: Receive MAIL FROM Response
    ReceiveMAILFROMResponse --> CheckMAILFROMResponse: Check MAIL FROM Response
    CheckMAILFROMResponse --> SendRCPTTO: Send RCPT TO Command
    SendRCPTTO --> ReceiveRCPTTOResponse: Receive RCPT TO Response
    ReceiveRCPTTOResponse --> CheckRCPTTOResponse: Check RCPT TO Response
    CheckRCPTTOResponse --> SendDATA: Send DATA Command
    SendDATA --> ReceiveDATAResponse: Receive DATA Response
    ReceiveDATAResponse --> CheckDATAResponse: Check DATA Response
    CheckDATAResponse --> SendMessage: Send Message Data
    SendMessage --> EndMessage: End Message with Single Period
    EndMessage --> SendQUIT: Send QUIT Command
    SendQUIT --> ReceiveQUITResponse: Receive QUIT Response
    ReceiveQUITResponse --> CloseConnection: Close Connection
    CloseConnection --> [*]

    CheckHELOResponse --> [*]: 220 Reply Not Received
    CheckMAILFROMResponse --> [*]: 250 Reply Not Received
    CheckRCPTTOResponse --> [*]: 250 Reply Not Received
    CheckDATAResponse --> [*]: 354 Reply Not Received