====== Use Telnet on Port 25 to test SMTP communication ======
For purposes of providing an example, the following procedure uses the values that are described in the following list:
* **Destination SMTP server** mail1.fabrikam.com
* **Source domain** contoso.com
* **Sender's e-mail address** chris@contoso.com
* **Recipient's e-mail address** kate@fabrikam.com
* **Message subject** Test from Contoso
* **Message body** This is a test message
^ Note: ^
| You should always use a valid sender e-mail address so that any non-delivery report (NDR) messages that are generated by the destination SMTP server are delivered to the sender of the message. |
The commands in Telnet Client are not case-sensitive. The SMTP command verbs are capitalized for clarity.
- At a command prompt, type **telnet**, and then press ENTER. This command opens the Telnet session.
- Type **set localecho** and then press ENTER. This optional command lets you view the characters as you type them. This setting may be required for some SMTP servers.
- Type **set logfile** _<filename>_. This optional command enables logging of the Telnet session to the specified log file. If you only specify a file name, the location of the log file is the current working directory. If you specify a path and a file name, the path must be local to the computer. Both the path and the file name that you specify must be entered in the Microsoft DOS 8.3 format. The path that you specify must already exist. If you specify a log file that doesn't exist, it will be created for you.
- Type **open mail1.fabrikam.com 25** and then press ENTER. \\ ^ Note: ^
| You can't use the backspace key after you have connected to the destination SMTP server within the Telnet session. If you make a mistake as you type an SMTP command, you must press ENTER and then type the command again. Unrecognized SMTP commands or syntax errors result in an error message that resembles the following: | 500 5.3.3 Unrecognized command
- Type **EHLO contoso.com** and then press ENTER.
- Type **MAIL FROM:chris@contoso.com** and then press ENTER.
- Type **RCPT TO:kate@fabrikam.com NOTIFY''success,failure** and then press ENTER. The optional NOTIFY command defines the particular delivery status notification (DSN) messages that the destination SMTP server must provide to the sender. DSN messages are defined in RFC 1891. In this case, you're requesting a DSN message for successful or failed message delivery.
- Type **DATA** and then press ENTER. You will receive a response that resembles the following:
354 Start mail input; end with <CLRF>.<CLRF>
- Type **Subject: Test from Contoso** and then press ENTER.
- Press ENTER. RFC 2822 requires a blank line between the "Subject:" header field and the message body.
- Type **This is a test message** and then press ENTER.
- Press ENTER, type a period (**.** ) and then press ENTER. You will receive a response that resembles the following: \\ 250 2.6.0 <GUID> Queued mail for delivery
- To disconnect from the destination SMTP server, type**QUIT** and then press ENTER. You will receive a response that resembles the following: \\ 221 2.0.0 Service closing transmission channel
- To close the Telnet session, type **quit** and then press ENTER.
Evaluate the Results of a Telnet Session
This section provides information about responses that may be provided to the following commands, which were used in the previous example:
* Open mail1.fabrikam.com 25
* EHLO contoso.com
* MAIL FROM:chris@contoso.com
* RCPT TO:kate@fabrikam.com NOTIFYsuccess,failure
^ Note: ^
| The 3-digit SMTP response codes that are defined in RFC 2821 are the same for all SMTP messaging servers. The text descriptions may differ slightly for some SMTP messaging servers. In the previous example, the destination computer is running Exchange Server 2010. |
Open mail1.fabrikam.com 25
**Successful Response** 220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>
**Failure Response** Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed
**Possible Reasons for Failure**
* The destination SMTP service is unavailable.
* There are restrictions on the destination firewall.
* There are restrictions on the source firewall.
* An incorrect FQDN or IP address for the destination SMTP server was specified.
* An incorrect port number was specified.
EHLO contoso.com
**Successful Response** 250 mail1.fabrikam.com Hello [<sourceIPaddress>]
**Failure Response** 501 5.5.4 Invalid domain name
**Possible Reasons for Failure** There are invalid characters in the domain name. Alternatively, there are connection restrictions on the destination SMTP server.
^ Note: ^
| EHLO is the Extended Simple Message Transfer Protocol (ESMTP) verb that is defined in RFC 2821. ESMTP servers can advertise their capabilities during the initial connection. These capabilities include their maximum accepted message size and their supported authentication methods. HELO is the older SMTP verb that is defined in RFC 821. Most SMTP messaging servers support ESMTP and EHLO. |
MAIL FROM:chris@contoso.com
**Successful Response** 250 2.1.0 Sender OK
**Failure Response** 550 5.1.7 Invalid address
**Possible Reasons for Failure** There is a syntax error in the sender's e-mail address.
**Failure Response** 530 5.7.1 Client was not authenticated
**Possible Reasons for Failure** The destination server does not accept anonymous message submissions. You receive this error if you try to use Telnet to submit a message directly to a Hub Transport server.
RCPT TO:kate@fabrikam.com NOTIFYsuccess,failure
**Successful Response** 250 2.1.5 Recipient OK
**Failure Response** 550 5.1.1 User unknown
**Possible Reasons for Failure** The specified recipient does not exist in the organization.