Telnet 到端口 25 以测试 SMTP 通信

时间:2024.4.13

Microsoft 产品线中有 SMTP 的多个不同变体。Microsoft Windows 产品线的 SMTP 服务包含在 Internet 信息服务 (IIS) 中,而在 Microsoft Windows NT Server 4.0 中,SMTP 服务包含在 Option Pack 中。在较新版本的 Windows 中,IIS 已被集成到操作系统中,并且您可以使用“控制面板”中的“添加或删除程序”添加 IIS。此外,Exchange 2000 和 Microsoft Exchange Server 2003 都使用 IIS 中的现有 SMTP 服务及其他功能。Microsoft Exchange Server 版本 4.0、5.0 和 5.5 均包含它们自己的 SMTP 版本,所采用的形式为 Internet Mail Connector (IMC) 或 Internet Mail Service (IMS)。

注意:在 Exchange 5.0 及更高版本中,Internet Mail Connector (IMC) 被重命名为 Internet Mail Service。

在启动 Telnet 会话之前,必须具有要将此测试邮件发送到的目标用户的完整 SMTP 电子邮件地址。该电子邮件地址必须采用以下格式:

User@Site.Domain.com

您也可以具有运行 SMTP 服务的服务器计算机的完全限定域名 (FQDN) 或 IP 地址(例如,

10.120.159.1)。如果服务器在您的组织中,您可能已经拥有这些信息。如果服务器是外部服务器,查找这些信息最简单的方法是使用 Nslookup.exe 以找到包含这些信息的 DNS 记录。有关 NSlookup 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 200525 使用 NSlookup.exe

有关如何获取 Internet 邮件交换器记录的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

203204 XFOR:如何获取 Internet 邮件交换器记录

确保运行 SMTP 服务的服务器上已启动 SMTP。要测试 SMTP 是否已启动,您可以运行本文中列出的基本测试,并验证您是否会收到来自远程服务器的 220 消息。这还将验证 SMTP 是否正在运行。

注意:

? 有些 Telnet 应用程序要求您打开本地回显功能,以查看键入的命令。要在 Microsoft

Telnet 会话中执行此操作,请在命令提示符处键入set local_echo。

?

回到顶端 在 Microsoft Windows XP 中,应键入set localecho而不是set local_echo。

基本测试

按照下列步骤操作,以确保主机和远程 SMTP 服务器能够通信。如果在您键入以下任一命令之后,收到以下错误信息,则说明 SMTP 服务器因为语法错误或命令错误而无法识别您所键入的内容: 500 Command not recognized

检查该命令并再次键入它,或者验证您是否正在与 Microsoft SMTP 服务器直接通信。

注意:Microsoft Telnet 不允许您使用 Backspace 键。如果在键入时出错,必须按 Enter 键,然后开始键入新的命令。

在以下步骤中,您要从命令行中运行 Telnet。要打开命令行,请单击“开始”,单击“运行”,在“打开”框中键入cmd,然后单击“确定”。

1. 您可以通过使用以下格式的 Telnet 命令来启动 Telnet 会话:

注意:在键入每行内容之后按 Enter 键。

telnet 服务器名端口号

例如,键入:

telnet 25

注意:您可以将服务器名 替换为您要连接到的 SMTP 服务器的 IP 地址

或 FQDN。 记住在键入每个命令之后按 Enter 键。

如果该命令起作用,您将会收到来自 SMTP 服务器的类似以下内容的

消息: 220 Microsoft Exchange Internet Mail

Connector <IMC 的版本号>

注意:由于有许多不同版本的 Microsoft SMTP 或第三方 SMTP 服务器,因此您可能

会收到来自接收服务器的不同的消息。不过,您肯定会收到包含服务器的 FQDN 和

SMTP 的版本的 220 消息。此外,所有版本的 Microsoft SMTP 在 220 消息中都包

含“Microsoft”一词。

2. 通过键入以下命令开始通信:

EHLO test.com

注意:您可以使用 HELO 命令,但是 EHLO 是扩展 SMTP 动词集中的一个动词,

SMTP 的所有当前 Microsoft 实现都支持该动词集。除非您认为扩展 SMTP 动词有问

题,否则最好使用 EHLO。

如果该命令成功,您会收到以下消息:

250 OK

3. 键入以下命令向接收 SMTP 服务器通知邮件发件人:

MAIL FROM:Admin@test.com

注意:该地址可以是您想使用的任何 SMTP 地址,但是最好考虑以下问题:

a. 有些 SMTP 邮件系统会基于 MAIL FROM:地址筛选邮件,并且会禁止某些 IP

地址连接到 SMTP 邮件系统,或者如果连接 IP 地址与 SMTP 邮件系统所在的域不匹配,它还会禁止该地址向 SMTP 邮件系统发送电子邮件。在本例中,该域是test.com。

b. 如果您在发送邮件时没有使用有效的电子邮件地址,您将无法确定在发送邮件

时是否有问题,因为未送达报告 (NDR) 无法到达无效的 IP 地址。如果您使用有效的电子邮件地址,您将会收到来自 SMTP 服务器的以下消息:

250 OK - MAIL FROM Admin@test.com

键入以下命令向接收 SMTP 服务器通知邮件的收件人。

注意:最好始终使用要发送到的域中的有效收件人 SMTP 地址。例如,如果您要发送到john@domain.com,必须确保域中存在john@domain.com。否则,您会收到 NDR。

使用您要发送到的人员的 SMTP 地址键入以下命令:

RCPT TO:User@Domain.Com

您会收到以下消息:

250 OK - Recipient User@ Domain.Com

键入以下命令通知 SMTP 服务器您已准备好发送数据:

DATA

您会收到以下消息:

354 Send data. End with CRLF.CRLF

您现在已可以开始键入邮件的 822/2822 部分。用户将会在他们的收件箱中看到邮件的这一部分。键入以下命令以添加主题行:

Subject:test message

按两次 Enter 键。此命令不会显示任何信息。

注意:按两次 Enter 键为了与 Request for Comments (RFC) 822 和 2822 保持一致。它规定 822 命令后面必须跟一个空行。

键入以下命令以添加邮件正文:

This is a test message you will not see a response from this command. 在下一个空行中键入英文句点 (.),然后按 Enter 键。您会收到以下消息: 250 OK

键入以下命令关闭连接:

QUIT

您会收到以下消息:

221 closing connection

验证收件人是否收到您发送的消息。如果在应用程序事件日志中出现任何错误事件消息,或者接收邮件时出现问题,请检查主机的配置或通信。


第二篇:用telnet命令测试SMTP服务器


用telnet命令测试SMTP服务器

本主题说明如何使用 Telnet 测试邮件服务器之间的简单邮件传输协议 (SMTP) 通信。默认情况下,SMTP 侦听端口 25。如果您使用 Telnet 端口 25,则可以输入用于连接 SMTP 服务器和发送邮件的 SMTP 命令,如同您的 Telnet 会话是 SMTP 邮件服务器一样。您还可以查看连接过程和邮件提交过程中每个步骤是成功还是失败。

以下列表说明了使用 Telnet 测试到或来自 Microsoft Exchange Server 组织中存在的传输服务器的 SMTP 通信的方案。

?

? 从位于外围网络之外的主机连接到组织的边缘传输服务器,并发送一封测试邮件。 从组织的边缘传输服务器连接到远程邮件服务器,并发送一封测试邮件。

开始之前

使用 Nslookup 命令行工具查找 SMTP 服务器的 IP 地址

若要使用 Telnet 端口 25 连接到目标 SMTP 服务器,您必须具有完全限定的域名 (FQDN) 或 SMTP 服务器的 IP 地址。查找此信息的最简便方法是使用 Nslookup 命令行工具查找目标域的 MX 记录。

使用 Nslookup 工具查找 SMTP 服务器的 IP 地址

1. 在命令提示符下,键入 nslookup,再按 Enter 键。此命令将打开 Nslookup 会话。

2. 键入 set type=mx,再按 Enter 键。

3. 键入 set timeout=20,再按 Enter 键。默认情况下,Windows DNS 服务器具有 15

秒的递归 DNS 查询超时限制。

4. 请键入想要查找 MX 记录的域名。例如,若要查找 fabrikam.com 域的 MX 记录,

请键入fabrikam.com.,再按 ENTER 键。

注意:

尾随句点 ( . ) 表示 FQDN。使用尾随句点可防止无意中将为网络配置的默认 DNS 后缀添加到域名中。

输出的命令将与以下内容类似:

fabrikam.com mx preference=10, mail exchanger =

fabrikam.com mx preference=20, mail exchanger =

internet address = 192.168.1.10

mail2 fabrikam.com internet address = 192.168.1.20

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

5. 准备结束 Nslookup 会话时,请键入 exit,再按 ENTER 键。

注意:

组织的内部网络规定的防火墙或 Internet 代理限制可能会阻止您使用 Nslookup 工具查询 Internet 上的公用 DNS 服务器。

MX 记录不是 Exchange 组织内的内部邮件流绝对必需的。如果要在组织中查找任何集线器传输服务器或已订阅边缘传输服务器的 FQDN,则可以使用 Exchange 命令行管理程序中的下列命令:Get-ExchangeServer | where {$_.isHubTransportServer -eq $true -or $_.isEdgeServer -eq $true} | Format-List Fqdn,ServerRole

有关详细信息,请参阅 Get-ExchangeServer 和 管道传输。

使用 Telnet 端口 25 测试 SMTP 通信

本节中的步骤说明如何使用 Telnet 端口 25 测试 SMTP 通信。步骤将使用以下列表中描述的值:

?

?

?

?

?

? 目标 SMTP 服务器 源域 contoso.com 发件人的电子邮件地址 chris@contoso.com 收件人的电子邮件地址 kate@fabrikam.com 邮件主题 来自 Contoso 的测试 邮件正文 这是一封测试邮件

注意:

应始终使用有效的发件人电子邮件地址,以便将目标 SMTP 服务器生成的未送达报告 (NDR) 邮件传递给邮件发件人。

使用 Telnet 端口 25 测试 SMTP 通信

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

2. 键入 set localecho,再按 Enter 键。此可选命令可使您在键入字符时查看这些字

符。某些 SMTP 服务器可能需要此设置。

3. 键入 set logfile <文件名>。此可选命令可以将 Telnet 会话记录到指定的日志文

件中。如果您仅指定了文件名,则日志文件的位置将是当前工作目录。如果您指定了路径和文件名,该路径必须位于计算机本地。指定的路径和文件名都必须以

Microsoft DOS 8.3 格式输入。您指定的路径必须已存在。如果您指定了一个不存在的日志文件,系统将为您创建一个日志文件。

4. 键入 open 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 命令可定义目标 SMTP 服务器必须向发件人提供的特定传递状态通知

(DSN) 邮件。DSN 邮件是在 RFC 1891 中定义的。在本例中,您要查询有关邮件传递成功或失败的 DSN 邮件。

8. 键入 DATA,再按 Enter 键。您将收到与以下类似的响应:

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

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

10. 按 Enter 键。RFC 2822 需要在 Subject: 头字段和邮件正文间留一个空行。

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

12. 按 ENTER 键,键入句点 ( . ),再按 ENTER 键。您将收到与以下类似的响应:

250 2.6.0 <GUID> Queued mail for delivery

13. 若要与目标 SMTP 服务器断开连接,请键入 QUIT,再按 ENTER 键。您将收到与以

下类似的响应:

221 2.0.0 Service closing transmission channel

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

解释 Telnet 会话与 SMTP 服务器的结果

针对您在以上示例中输入的命令,本节提供有关这些命令响应的详细信息。

注意:

在 RFC 2821 中定义的三位数 SMTP 响应代码对于所有 SMTP 邮件服务器都相同。对于某些 SMTP 邮件服务器,文本说明可能稍有不同。在本示例中,目标计算机正在运行 Exchange Server 2007。

打开 25

成功响应 220 Microsoft ESMTP MAIL Service ready at

<day-date-time>

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

失败的可能原因

?

?

?

?

? 目标 SMTP 服务不可用。 对目标防火墙有所限制。 对源防火墙有所限制。 指定的目标 SMTP 服务器的 FQDN 或 IP 地址不正确。 指定的端口号不正确。

EHLO contoso.com

成功响应 250 Hello [<sourceIPaddress>]

失败响应 501 5.5.4 Invalid domain name

失败的可能原因 域名中存在无效字符。或者,存在有关目标 SMTP 服务器的连接限制。 注意:

EHLO 是扩展的简单邮件传输协议 (ESMTP) 命令动词,该命令动词是在 RFC 2821 中定义的。ESMTP 服务器可在初始连接时公布其功能。这些功能包括其最大的可接受邮件大小以及其支持的身份验证方法。HELO 是 RFC 821 中定义的旧版 SMTP 命令动词。多数 SMTP 邮件服务器都支持 ESMTP 和 EHLO。

MAIL FROM:chris@contoso.com

成功响应 250 2.1.0 Sender OK

失败响应 550 5.1.7 Invalid address

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

失败响应 530 5.7.1 Client was not authenticated

可能的失败原因 目标服务器不接受匿名邮件提交。如果您试图使用 Telnet 直接向集线器传输服务器提交邮件,则将收到此错误消息。

RCPT TO:kate@fabrikam.com NOTIFY=success,failure

成功响应 250 2.1.5 Recipient OK

失败响应 550 5.1.1 User unknown

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

更多相关推荐:
telnet命令 测试端口号方法以及启动telnet方法

1点击计算机的开始菜单运行输入CMD命令然后确定打开cmd命令行2输入telnet测试端口命令telnetIP端口或者telnet域名端口回车3如果端口关闭或者无法连接则显示不能打开到主机的链接链接失败4端口打...

开放1433端口进行telnet连接

笔者最近制作了一款winform系统软件数据库是sqlserver20xx部署在服务器上而系统软件安装在从机上安装好后发现数据库没有连接上于是与服务器端进行连接测试现把调试过程描述如下以本机为例1首先要测试本机...

Telnet 1433端口不通之端口的监听

Telnet1433端口不通之端口的监听20xx07221248佚名网络整理我要评论0字号TT文章摘要下面我们来对Telnet1433端口不通的具体内容进行一下分析这次针对的问题是如何检查端口的监听问题ADTe...

telnet端口映射

Telnet端口映射一般情况下我们可以直接telnet局域网最外围的设备因为最外围的设备用的是公网IP因为内网的设备用的都是私网IP所以我们无法直接telnet例如图中的交换机管理IP是私有的所以PC1无法直接...

如何利用telnet命令检测端口映射是否成功

Q如何利用telnet命令检测端口映射是否成功A确保在路由器上端口映射的设置没有问题后远程可以通过telnet命令来验证端口是否映射成功即在dos命令行下输入telnet路由器WAN口IP对应的端口号比如tel...

linux打开telnet端口

linux打开telnet端口远程TELNET登录需要主机打开23端口方法如下sudonclp23amp打开23端口即telnetnetstatangrep23查看是否打开23端口验证为OK即通过可以从其它环境...

如何利用telnet命令检测端口映射是否成功

确保在路由器上端口映射的设置没有问题后远程可以通过telnet命令来验证端口是否映射成功即在dos命令行下输入telnet路由器WAN口IP对应的端口号比如telnet124901731280如果有类似不能打开...

netstat、telnet、ping等命令的使用

一Netstat常用命令1Netstatanoa显示所有连接和监听端口并显示进程pid2Netstatanofind端口号pid号查找端口号的进程pid或者某一个进程占用的端口查找到进程的pid号之后可以用ta...

XP服务器开启Telnet与23端口的修改方法

XP服务器开启Telnet与23端口的修改方法20xx1227090430分类标签字号大中小订阅windows默认安装了Telnet服务但是并没有默认启动而且Telnet服务需要NTLM认证有管理员密码也无济于...

telnet攻击

Telnet是一种字符模式的终端服务它可以使用户坐在已上网的电脑键盘前通过网络进入远程主机然后对远程主机进行操作这种连通可以发生在局域网里面也可以通过互联网进行被连通的计算机称为TelnetServer你自己在...

W150D 利用telnet命令检测端口映射是否成功

Q如何利用telnet命令检测端口映射是否成功A确保在路由器上端口映射的设置没有问题后远程可以通过telnet命令来验证端口是否映射成功即在dos命令行下输入telnet路由器WAN口IP对应的端口号比如tel...

Telnet配置

在IOS输入命令时只要缩写的程度不会引起混淆使用配置命令的时候都可以使用缩写的形式比如Switchgtenable在用户模式下以en开头的命令就只有enable所以可以缩写成Switchgten也可以用TAB键...

telnet 端口号(18篇)