XFOR: Telnet to Port 25 to Test SMTP Communication

This article describes how to telnet to port 25 on a computer that runs Simple Mail Transfer Protocol (SMTP) services to troubleshoot SMTP communication problems. The information in this article, including error messages, only applies to issues when attempting to resolve SMTP communication issues with Microsoft Exchange-based servers and is not intended for general troubleshooting purposes.

You can use the following troubleshooting steps that are appropriate for the type of problem that you are experiencing. For example, if you are having problems sending over SMTP between two of your Microsoft Exchange 2000 Server servers, you can test the SMTP connectivity by using Telnet on the sending server to connect to port 25 on the destination server. By default, SMTP listens on port 25. Alternatively, if you are having problems receiving SMTP mail from the Internet, you can follow the steps that are listed in this article to test connectivity to your SMTP server from a host that resides on the Internet and that is not on your network.

NOTE: This article only outlines information for a connectivity test for messaging with Exchange Server, if you are not able to connect to the Exchange Server, please search the KB for other symptoms or error messages you are experiencing.

MORE INFORMATION

There are several different variations of SMTP in the Microsoft product line. The Microsoft Windows product line has an SMTP service that is included with Internet Information Services (IIS), and in Microsoft Windows NT Server 4.0, the SMTP service was included in the Option Pack. In more recent versions of Windows, IIS has been integrated in the operating system, and you can add IIS by using Add or Remove Programs in Control Panel. Additionally, Exchange 2000 and Microsoft Exchange Server 2003 use the existing SMTP service from IIS with additional features. Microsoft Exchange Server versions 4.0, 5.0, and 5.5 all come with their own versions of SMTP in the form of the Internet Mail Connector (IMC) or Internet Mail Service (IMS).

Note In Exchange 5.0 and later, the Internet Mail Connector (IMC) is renamed the Internet Mail Service.

Before you start the Telnet session, you must have the full SMTP e-mail address of the destination user who you want to send this test message to. This e-mail address must be in the following format:

User@Site.Domain.com

You must also have the fully qualified domain name (FQDN) or the IP address of the server computer that is running the SMTP services (for example, 10.120.159.1). If the servers are in your organization, you may already have this information. If the servers are external, the easiest way to find this information is to use Nslookup.exe to find the DNS records that contain this information.
Make sure that SMTP has started on the server that runs the SMTP service. To test if SMTP has started, you can run the basic tests that are listed in this article and verify that you receive the 220 response from the remote server. This also verifies that SMTP is running.

Notes

    Some Telnet applications require you to turn on local echoing to see the commands that you are typing. To do this while in a Microsoft Telnet session, type set local_echo at the command prompt.
      In Microsoft Windows XP, type set localecho instead of set local_echo.

      Basic Testing

      Follow these steps to make sure that the host computer and the remote SMTP server can communicate. If you receive the following error message after you type any one of the following commands, the SMTP server does not recognize what you typed because of a syntax error or an erroneous command:

      500 Command not recognized

      Check the command and type it again or verify that you are communicating directly to a Microsoft SMTP server.

      Note Microsoft Telnet does not permit you to use the Backspace key. If you make a mistake when you type a command, you must press ENTER, and then start a new command.

      In the following steps, you run Telnet from the command line. To open a command line, Click Start, click Run, type cmd in the Open box, and then click OK.

      1. You can start a Telnet session by using the Telnet command in the following format:

      Note Press ENTER after you type each line.

      telnet servername portnumber

      For example, type:

      telnet mail.contoso.com 25

      Note You can replace servername with the IP address or the FQDN of the SMTP server that you want to connect to. Remember to press ENTER after each command.

      If the command works, you receive a response from the SMTP server that is similar to the following:

      220 site.contoso.com Microsoft Exchange Internet Mail Connector <version number of the IMC>

      Note There are different versions of Microsoft SMTP or third party SMTP servers, and you may receive different responses from the receiving server. What is important is that you receive the 220 response with the FQDN of the server and the version of SMTP. Additionally, all versions of Microsoft SMTP include the term “Microsoft” in the 220 response.

      2. Start communication by typing the following command:

      EHLO test.com

      Note You can use the HELO command, but EHLO is a verb that exists in the Extended SMTP verb set that is supported in all current Microsoft implementations of SMTP. It is a good idea to use EHLO, unless you believe that there is a problem with the Extended SMTP Verbs.

      If the command is successful, you receive the following response:

      250 OK
      3. Type the following command to tell the receiving SMTP server who the message is from:

      MAIL FROM:Admin@test.com

      Note This address can be any SMTP address that you want, but it is a good idea to consider the following issues:

      a. Some SMTP mail systems filter messages based on the MAIL FROM: address and may not permit certain IP addresses to connect or may not permit the IP address to send e-mail to the SMTP mail system if the connecting IP address does not match the domain where the SMTP mail system resides. In this example, that domain is test.com.
      b. If you do not use a valid e-mail address when you send a message, you cannot determine if the message had a delivery problem, because the non-delivery report (NDR) cannot reach an IP address that is not valid. If you use a valid e-mail address, you receive the following response from the SMTP server:

      250 OK - MAIL FROM Admin@test.com
      4. Type the following command to tell the receiving SMTP server whom the message is to.

      Note It is a good idea to always use a valid recipient SMTP address in the domain that you are sending to. For example, if you are sending to john@domain.com, you must be certain that john@domain.com exists in the domain. Otherwise, you will receive an NDR.

      Type the following command with the SMTP address of the person you want to send to:

      RCPT TO: User@Domain.Com

      You receive the following response:

      250 OK - Recipient User@ Domain.Com
      5. Type the following command to tell the SMTP server that you are ready to send data:

      DATA

      You receive the following response:

      354 Send data. End with CRLF.CRLF
      6. You are now ready to start typing the 822/2822 section of the message. The user will see this part of the message in their inbox. Type the following command to add a subject line:

      Subject: test message

      Press ENTER two times. You do not receive a response from this command.

      Note The two ENTER commands comply with Request for Comments (RFC) 822 and 2822. 822 commands must be followed by a blank line.

      7. Type the following command to add message body text:

      This is a test message you will not see a response from this command.

      8. Type a period (.) at the next blank line, and then press ENTER. You receive the following response:

      250 OK
      9. Close the connection by typing the following command:

      QUIT

      You receive the following response:

      221 closing connection
      10. Verify that the recipient received the message that you sent. If any error event messages appear in the application event log, or if there are problems receiving the message, check the configuration or the communication to the host.

      Advanced Testing

      In addition to the basic testing steps that are listed in this article, you can use a delivery receipt to test mail in both directions. You can use this method to verify that the SMTP server can accept an inbound connection and generate a delivery receipt back to the sender to test outbound connectivity of the SMTP server.

      To request a delivery receipt for the test message, see step 4 in the “Basic Testing” section of this article to make sure that the information provided is a valid e-mail address that can receive the delivery receipt. Then in step 5 in the “Basic Testing” section of this article, type the following command in the Telnet session:

      RCPT TO:User@Site.Domain.Com notify=success,failure


      APPLIES TO
        Microsoft Exchange Server 2003 Standard Edition
          Microsoft Exchange Server 2003 Enterprise Edition
            Microsoft Exchange 2000 Server Standard Edition
              Microsoft Exchange Server 5.5 Standard Edition
                Microsoft Exchange Server 5.0 Standard Edition
                  Microsoft Exchange Server 4.0 Standard Edition
                    Microsoft Internet Information Services 6.0
                      Microsoft Internet Information Services 5.0
                        Microsoft Internet Information Server 4.0

                        ——————————————–

                        Microsoft Knowledge Base Article

                        This article contents is Microsoft Copyrighted material.
                        Microsoft Corporation. All rights reserved. Terms of Use | Trademarks


                        You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

                        AddThis Social Bookmark Button

                        Leave a Reply

                        *
                        To prove that you're not a bot, enter this code
                        Anti-Spam Image