Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2
Topic Last Modified: 2012-07-23
This topic explains how to use Telnet to test Simple Mail Transfer Protocol (SMTP) communication between messaging servers. By default, SMTP listens on port 25. If you use Telnet on port 25, you can enter the SMTP commands that are used to connect to an SMTP server and send a message exactly as if your Telnet session was an SMTP messaging server. You can see the success or failure of each step in the connection and message submission process.
Here are the scenarios where you may want to use Telnet to test SMTP communication to or from the transport servers that exist in your Microsoft Exchange Server organization:
- Connect to your organization's Edge Transport server from a
host that is located outside your perimeter network and send a test
message.
- Connect to a remote messaging server from your organization's
Edge Transport server and send a test message.
The procedure in this topic shows you how to use Telnet Client, which is a component that is included with Microsoft Windows. Third-party Telnet clients may require a syntax that is different from that of the Windows Telnet component.
Prerequisites
- Configure a Receive connector to allow anonymous access or
Basic authentication Because the message
transfers that normally occur between Hub Transport servers are
encrypted and authenticated, the internal Hub Transport server
should have a Receive connector that is configured to allow
anonymous access or Basic authentication to receive messages when
using Telnet on port 25 to test communication. Anonymous access is
required for Internet-facing servers
Note: When you send a message to a Receive connector that accepts Basic authentication, you must have a utility to convert the text strings that are used for the username and password into the Base64 format. Because the user name and password are easily discernable when Basic authentication is used, we don't recommend Basic authentication without encryption. - Connect to a remote messaging
server You may also want to connect to a
remote messaging server from your organization's Edge Transport
server. This will help to avoid rejection of the test message by
Internet-facing SMTP servers that are configured to validate the
source IP address, the corresponding domain name system (DNS)
domain name, and the reverse lookup IP address of any Internet host
that tries to send a message to the server.
- Install and/or enable the Telnet
Client You may need to perform one or more of
the following tasks before you use Telnet to test SMTP
communication between messaging servers:
- Install Telnet Client if you haven't already done so. See
Install Telnet Client for details about how to
install Telnet Client on Windows Vista or Windows Server 2008.
- Enable Telnet Client on Windows Server 2008. See the procedure
later in this topic.
- Install Telnet Client if you haven't already done so. See
Install Telnet Client for details about how to
install Telnet Client on Windows Vista or Windows Server 2008.
- Find the FQDN or IP address of an SMTP server. If you
don't know the FQDN or IP address, you can use Nslookup to find the
FQDN or IP address of an SMTP server. See the procedure later in
this topic.
Enable Telnet Client in Windows Server 2008
Membership in the Windows Server 2008 local Administrators group, or equivalent, is the minimum required to complete this procedure.
In Windows Server 2008, Telnet Client is disabled by default. To enable it, complete the following steps:
- Open Server Manager.
- Click Action, and then select Add Features.
- Select Telnet Client, and then click Next.
- Click Install, and then click Close to complete
the installation of Telnet Client.
Use Nslookup to find the FQDN or IP address of an SMTP server
To connect to a destination SMTP server by using Telnet on port 25, you must use the fully qualified domain name (FQDN) or the IP address of the SMTP server. If the FQDN or IP address is unknown, the easiest way to find this information is to use the Nslookup command-line tool to find the MX record for the destination domain.
- At a command prompt, type nslookup, and then press
ENTER. This command opens the Nslookup session.
- Type set type=mx and then press ENTER.
- Type set timeout=20 and then press ENTER. By default,
Windows DNS servers have a 15-second recursive DNS query time-out
limit.
- Type the name of the domain for which you want to find the MX
record. For example, to find the MX record for the fabrikam.com
domain, type fabrikam.com., and then press ENTER.
Note: The trailing period ( . ) indicates a FQDN. The use of the trailing period prevents any default DNS suffixes that are configured for your network from being unintentionally added to the domain name.
Copy Code fabrikam.com mx preference=10, mail exchanger = mail1.fabrikam.com fabrikam.com mx preference=20, mail exchanger = mail2.fabrikam.com mail1.fabrikam.com internet address = 192.168.1.10 mail2 fabrikam.com internet address = 192.168.1.20
- When you're ready to end the Nslookup session, type
exit, and then press ENTER.
Note: |
---|
Firewall or Internet proxy restrictions that are imposed on
your organization's internal network may prevent you from using the
Nslookup tool to query public DNS servers on the Internet. MX records are not strictly required for internal message flow inside an Exchange organization. If you have to find the FQDN of any Hub Transport server or subscribed Edge Transport server in your organization, you can use the following command in the Exchange Management Shell: Get-ExchangeServer | where
{$_.isHubTransportServer -eq $true -or $_.isEdgeServer -eq $true} |
Format-List Fqdn,ServerRole For more information, see Get-ExchangeServer and Pipelining. |
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: Copy Code 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:
Copy Code 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:
Copy Code 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:
Copy Code 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 NOTIFY=success,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 NOTIFY=success,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.