使用 Telnet 测试 Exchange 服务器上的 SMTP 通信

在大多数版本的 Windows 上,需要在使用之前安装 Telnet 客户端。要安装它,请参阅 Install Telnet Client(安装 Telnet 客户端)。

若要在端口 25 上使用 Telnet 连接目标 SMTP 服务器,需要使用 SMTP 服务器的完全限定的域名 (FQDN)(例如 mail.contoso.com)或 IP 地址。如果不知道 FQDN 或 IP 地址,可以使用 Nslookup 命令行工具查找目标域的 MX 记录。

note注意:
网络策略可能会阻止用户使用 Nslookup 工具在 Interent 上查询公共 DNS 服务器。作为替代方法,可以在 Internet 上使用其中一个免费提供的 DNS 查找或 MX 记录查找网站。
  1. 在命令提示符处,键入 nslookup,然后按 Enter。此命令将打开 Nslookup 会话。

  2. 键入 set type=mx 并按 Enter 键。

  3. 键入要查找其 MX 记录的域名。例如,若要查找 fabrikam.com 域的 MX 记录,请键入 fabrikam.com.,然后按 Enter。

    note注意:
    使用尾随句点 ( . ) 时,可以防止无意中向域名添加任何默认的 DNS 后缀。

    命令输出如下所示:

    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
    

    可以将与 MX 记录关联的任何主机名或 IP 地址用作目标 SMTP 服务器。较低的首选项值(首选项 = 10 与 20)表示首选 SMTP 服务器。多个 MX 记录和不同的首选项值用于实现负载均衡和容错。

  4. 准备结束 Nslookup 会话时,请键入 exit 并按 Enter 键。

在此示例中,我们将使用下面的值。在服务器上运行命令时,将这些值替换为组织的 SMTP 服务器、域等的值。

  • 目标 SMTP 服务器   mail1.fabrikam.com

  • 源域   contoso.com

  • 发件人的电子邮件地址   chris@contoso.com

  • 收件人的电子邮件地址   kate@fabrikam.com

  • 邮件主题   来自 Contoso 的测试

  • 邮件正文   这是一封测试邮件

tip提示:
  • Telnet 客户端中的命令不区分大小写。为清楚起见,本示例中的 SMTP 命令动词均使用大写。

  • 连接目标 SMTP 服务器后,无法在 Telnet 会话中使用 Backspace 键。如果在键入 SMTP 命令时出错,需要按 Enter,然后重新键入命令。无法识别的 SMTP 命令或语法错误会导致生成类似下面的错误消息:

    500 5.3.3 Unrecognized command

  1. 打开“命令提示符”窗口,键入 telnet,再按 Enter 键。

    此命令将打开 Telnet 会话。

  2. 键入 set localecho,再按 Enter 键。

    借助此可选命令,可以一边键入字符,一边查看这些字符。对于某些 SMTP 服务器,可能需要这样设置。

  3. 键入 set logfile<filename>,再按 Enter 键。

    可选命令可以进行日志记录,并指定 Telnet 会话的日志文件。如果仅指定了文件名,则日志文件位于当前文件夹。如果指定了路径和文件名,该路径需要位于本地计算机中,并且可能需要以 Windows DOS 8.3 格式(无空格的简称)输入路径和文件名。该路径必须存在,但会自动创建日志文件。

  4. 键入 OPEN mail1.fabrikam.com 25,再按 Enter 键。

  5. 键入 EHLO contoso.com,再按 Enter 键。

  6. 键入 MAIL FROM:chris@contoso.com,再按 Enter 键。

  7. 键入 RCPT TO:kate@fabrikam.com NOTIFY=success,failure,再按 Enter 键。

    可选的 NOTIFY 命令可指定特定的传递状态通知 (DSN) 邮件(也称为退回邮件、未送达报告或 NDR),该邮件需要提供 SMTP。在本例中,要查询有关邮件传递成功或失败的 DSN 邮件。

  8. 键入 DATA,再按 Enter 键。

  9. 键入 主题:来自 Contoso 的测试,再按 Enter 键。

  10. 再次按 Enter 键。

    Subject: 字段和邮件正文之间需要空白行。

  11. 键入这是一封测试邮件,再按 Enter 键。

  12. 键入句点 ( . ),再按 Enter 键。

  13. 若要与 SMTP 服务器断开连接,请键入 QUIT,再按 Enter 键。

  14. 若要关闭 Telnet 会话,请键入 quit,再按 Enter 键。

下面介绍了使用上述步骤执行的成功会话,如下所示:

C:\Windows\System32> telnet

Microsoft Telnet> set localecho
Microsoft Telnet> set logfile c:\TelnetTest.txt
Microsoft Telnet> OPEN mail1.fabrikam.com 25

220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at Fri, 5 Aug 2016 16:24:41 -0700
EHLO contoso.com
250-mail1.fabrikam.com Hello [172.16.0.5]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST
MAIL FROM: chris@contoso.com
250 2.1.0 Sender OK
RCPT TO: kate@fabrikam.com NOTIFY=success,failure
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Subject: test
This is a test message.
.
250 2.6.0 <c89b4fcc-3ad1-4758-a1ab-1e820065d622@mail1.fabrikam.com> [InternalId=5111011082268, Hostname=mail1.fabrikam.com] Queued mail for delivery
QUIT
221 2.0.0 Service closing transmission channel

针对以上示例中所使用的命令,本节提供有关命令的成功和失败响应的信息。

note注意:
RFC 5321 中定义的三位数 SMTP 响应代码对所有 SMTP 消息传送服务器都一样,但响应中的文本说明可能略有不同。

SMTP 服务器采用 x.y.z 的格式,用多种数字回复代码响应命令,其中:

  • X 表示命令是好、坏还是不完整。

  • Y 表示发送的响应的类型。

  • Z 提供了有关命令的其他信息

由打开连接的服务器接收响应后,它可以辨别远程服务器已接受命令并准备好接受下一个命令,还是发生了错误。

理解第一个数字 (X) 尤为重要,因为它指示发送的命令是成功还是失败。以下是可能的值及其含义。

 

回复代码含义

2.y.z

发送的命令在远程服务器上成功完成。远程服务器已准备好接受下一个命令。

3.y.z

命令已接受,但远程服务器需要更多信息才能完成此操作。发送服务器需要发送一个包含所需信息的新命令。

4.y.z

由于可能是临时命令的原因,命令未被远程服务器接受。发送服务器稍后应再次尝试连接,查看远程服务器是否可以成功接受命令。发送服务器将继续重试连接,直到完成成功连接(由 2.y.z 代码表示)或永久失败(由 5.y.z 代码表示)。

一个出现临时错误的示例是,远程服务器上的存储空间不足。可用空间增加后,远程服务器应该能够成功地接受命令。

5.y.z

由于不可恢复的原因,命令未被远程服务器接受。发送服务器将不会重试连接,并将把未送达报告重新发回给发送邮件的用户。

一个出现不可恢复错误的示例是,将邮件发送到不存在的电子邮件地址。

上表基于的是 RFC 5321(简单邮件传输协议),4.2.1 部分 所提供的信息。其他信息(包括对 SMTP 回复代码的第二位数 (Y) 和第三位数 (Z) 的说明)包含在本部分,以及 4.2.2 和 4.2.3 部分中。

成功响应   220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>

失败响应   Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

失败的可能原因

  • 目标 SMTP 服务不可用。

  • 对目标防火墙有所限制。

  • 对源防火墙有所限制。

  • 目标 SMTP 服务器的 FQDN 或 IP 地址不正确。

  • 端口号不正确。

成功响应   250 mail1.fabrikam.com Hello [<sourceIPaddress>]

失败响应   501 5.5.4 Invalid domain name

失败的可能原因

  • 域名中存在无效字符。

  • 目标 SMTP 服务器上存在连接限制。

note注意:
EHLO 是 RFC 5321 中定义的已扩展简单邮件传输协议 (ESMTP) 动作。ESMTP 服务器可在初始连接时公布其功能。这些功能包括其可接受的邮件大小上限,以及支持的身份验证方法。HELO 是 RFC 821 中定义的旧版 SMTP 动作。大多数 SMTP 消息传送服务器均支持 ESMTP 和 EHLO。如果尝试连接的非 Exchange 服务器不支持 EHLO,则可以改用 HELO。

成功响应   250 2.1.0 Sender OK

失败响应   550 5.1.7 Invalid address

可能的失败原因   发件人的电子邮件地址中存在语法错误。

失败响应   530 5.7.1 Client was not authenticated

可能的失败原因   目标服务器不接受匿名邮件提交。如果尝试使用 Telnet 向不具有配置为接受匿名连接的接收连接器的邮箱服务器直接提交邮件,则会收到此错误。

成功响应   250 2.1.5 Recipient OK

失败响应   550 5.1.1 User unknown

可能的失败原因   指定的收件人不存在。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值