Skip to content

Telnet SMTP verification

Telnet SMTP verification is a manual diagnostic technique used to test the connectivity and functionality of a Mail Transfer Agent (MTA) or Mail User Agent (MUA) by interacting directly with the SMTP service via the command line^[600-developer__smtp.md].

By using a Telnet client to connect to the specific SMTP port, administrators can manually issue protocol commands to verify that the server is responsive and correctly configured to receive or relay email^[600-developer__smtp.md].

Prerequisites

  • SMTP Server Availability: The target SMTP service must be running and accessible over the network^[600-developer__smtp.md].
  • Telnet Client: A Telnet client utility is required on the testing machine to initiate the TCP connection^[600-developer__smtp.md].

Verification Workflow

The verification process follows the standard SMTP protocol sequence, simulating a mail transaction^[600-developer__smtp.md].

1. Connection

Initiate a TCP connection to the SMTP server on the appropriate port (typically port 25). Once connected, the server should respond with a status code (e.g., 220) indicating it is ready^[600-developer__smtp.md].

2. Handshake

Introduce the client to the server using the HELO or EHLO command^[600-developer__smtp.md]. * HELO: The standard command to initiate the session using basic SMTP protocol^[600-developer__smtp.md]. * EHLO: Used to initiate a session with Extended SMTP (ESMTP) servers^[600-developer__smtp.md]. If successful, the server will reply with a list of supported features, such as STARTTLS^[600-developer__smtp.md].

3. Sender Specification

Define the envelope sender using the MAIL FROM command^[600-developer__smtp.md]. This address specifies who the email is from and may be checked against the message headers later^[600-developer__smtp.md].

4. Recipient Specification

Define the envelope recipient using the RCPT TO command^[600-developer__smtp.md]. This command can be repeated multiple times to specify multiple recipients for the same email message^[600-developer__smtp.md].

5. Content Transmission

Initiate the transfer of the email body by issuing the DATA command^[600-developer__smtp.md]. After the server accepts this command, the email content (headers and body) is typed in. The transmission is concluded by entering a line containing only a dot (.), typically followed by a carriage return^[600-developer__smtp.md].

6. Termination

End the session gracefully by issuing the QUIT command^[600-developer__smtp.md]. Proper termination is often logged by SMTP servers and can be used as a heuristic in anti-spam filtering^[600-developer__smtp.md].

Security Considerations

  • TLS Support: If the server advertises STARTTLS in its EHLO response, secure communication can be negotiated^[600-developer__smtp.md].
  • Anti-Spam: SMTP servers often validate that the domain name provided in the HELO/EHLO command resolves to the client's IP address as a basic anti-spam measure^[600-developer__smtp.md].
  • [[SMTP]]
  • [[Telnet]]
  • [[MTA]]

Sources

  • 600-developer__smtp.md