如何使用 Telnet 测试 SMTP 通信

 

上一次修改主题: 2005-05-24

Telnet 是一个非常有用的工具,可用于解决与 SMTP 和邮件流有关的问题。例如,可以使用 telnet 来完成下列操作:

  • 确认 SMTP 已正确安装,并且具有所有必要的命令。
  • 确保在 Internet 上能够访问到您的服务器。
  • 尝试直接通过 TCP 端口传递邮件。
  • 确定所有服务器都接受连接。
  • 确定防火墙是否阻止连接。
  • 确保单个用户能够接收邮件。
  • 确保特定的域能够接收邮件。
  • 确保特定的用户或域能够向您的域发送邮件。
note注意:
下面的步骤说明了如何测试在向组织外中继邮件时要求基本身份验证的情况下,内部用户向远程用户发送邮件的过程。

开始之前

在执行本主题中的步骤之前,请阅读排除邮件流和 SMTP 故障

执行此步骤需要有下列权限:

  • 本地管理员组的成员

步骤

使用 telnet 测试 SMTP 通信

  1. 打开 telnet 会话:在命令提示符下,键入 telnet,再按 Enter 键。

  2. 在运行 Microsoft Windows® 2000 的计算机上键入 set local_echo,或者在运行 Windows Server™ 2003 或 Windows XP 的计算机上键入 SET LOCALECHO,然后按 Enter 键。通过该命令可以查看系统对命令的响应。

    note注意:
    有关可用的 telnet 命令列表,请键入 set ?
  3. 键入 o <您的邮件服务器域> 25,再按 Enter 键。

  4. 键入 EHLO <您的邮件服务器域>,再按 Enter 键。

  5. 键入 AUTH LOGIN。服务器提示您输入加密的用户名。

  6. 输入以 base 64 加密的用户名。可以使用可用的几个工具之一来对用户名进行编码。

  7. 服务器提示您输入以 base 64 加密的密码。输入以 base 64 加密的密码。

  8. 键入 MAIL FROM:<sender@domain.com>,再按 Enter 键。如果不允许该发件人发送邮件,SMTP 服务器将返回错误。

  9. 键入 RCPT TO:<recipient@remotedomain.com>,再按 Enter 键。如果收件人不是有效的收件人或者服务器不接受此域的邮件,则 SMTP 服务器返回一个错误。

  10. 键入 DATA

  11. 如果需要,请键入邮件文本,按 Enter 键,再键入句点 (.),然后再次按 Enter 键。

  12. 如果邮件正常工作,您应看到如下所示的响应(指出邮件排队等待传递):

    250 2.6.0 <INET-IMC-01UWr81nn9000fbad8@mail1.contoso.com.
    

有关详细信息

下面的示例显示了一个从 contoso.com 向远程域发送邮件并显示成功结果的 telnet 测试:

250-mail1.fourthcoffee.com Hello [172.16.0.0]

250-TURN

250-ATRN

250-SIZE 5242880

250-ETRN

250-PIPELINING

250-DSN

250-ENHANCEDSTATUSCODES

250-8bitmime

250-BINARYMIME

250-CHUNKING

250-VRFY

250-X-EXPS GSSAPI NTLM

250-AUTH GSSAPI NTLM

250-X-LINK2STATE

250-XEXCH50

250 OK

334 VXNlcm5hbWU6

334 UGFzc3dvcmQ6

235 2.7.0 Authentication successful.

250 2.1.0 kim@fourthcoffee.com....Sender OK

250 2.1.5 ted@contoso.com

354 Start mail input; end with <CRLF>.<CRLF>

.

250 2.6.0 <INET-IMC-01UWr81nn9000fbad8@mail1.fourthcoffee.com> Queued mail for delivery

有关详细信息,请参阅保护 Exchange 服务器