首页 > 服务器 > Web服务器 > 正文

使用SMTP协议Telnet测试邮件服务器

2024-09-01 13:44:18
字体:
来源:转载
供稿:网友

本文介绍如何telnet到运行简单邮件传输协议(SMTP)服务的计算机上的端口25,以解决SMTP通信问题。默认情况下,SMTP侦听端口 25。

  您可以根据您遇到的问题类型选用以下适当的疑难解答步骤。例如,如果您在两台 Microsoft Exchange 2000 Server服务器之间通过SMTP发送邮件时遇到问题,则可以通过在发送服务器上使用 Telnet连接到目标服务器上的端口25来测试SMTP连接。或者,如果您在接收来自Internet的SMTP邮件时遇到问题,则可以按照本文中列出的步骤,测试驻留在Internet上但不在您的网络上的主机与您的 SMTP服务器的连接。更多信息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 mail.contoso.com 25 注意:您可以将服务器名替换为您要连接到的SMTP服务器的IP地址或FQDN。记住在键入每个命令之后按Enter键。

  如果该命令起作用,您将会收到来自SMTP服务器的类似以下内容的消息:220 site.contoso.com Microsoft Exchange Internet Mail Connector 注意:由于有许多不同版本的 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地址,但是最好考虑以下问题:1. 有些SMTP邮件系统会基于MAIL FROM:地址筛选邮件,并且会禁止某些IP地址连接到SMTP邮件系统,或者如果连接IP地址与SMTP邮件系统所在的域不匹配,它还会禁止该地址向SMTP邮件系统发送电子邮件。在本例中,该域是test.com。2. 如果您在发送邮件时没有使用有效的电子邮件地址,您将无法确定在发送邮件时是否有问题,因为未送达报告(NDR)无法到达无效的IP地址。如果您使用有效的电子邮件地址,您将会收到来自SMTP服务器的以下消息:250 OK - MAIL FROM Admin@test.com 4. 键入以下命令向接收SMTP服务器通知邮件的收件人。

  注意:

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

  使用您要发送到的人员的SMTP地址键入以下命令:RCPT TO:User@Domain.Com 您会收到以下消息:250 OK - Recipient User@ Domain.Com 5. 键入以下命令通知 SMTP服务器您已准备好发送数据:DATA 您会收到以下消息:354 Send data. End with CRLF.CRLF 6. 您现在已可以开始键入邮件的 822/2822 部分。用户将会在他们的收件箱中看到邮件的这一部分。键入以下命令以添加主题行:Subject:test message按两次Enter键。此命令不会显示任何信息。

  注意:按两次Enter键为了与Request for Comments (RFC) 822和2822保持一致。它规定822命令后面必须跟一个空行。7. 键入以下命令以添加邮件正文:This is a test message you will not see a response from this command.8. 在下一个空行中键入英文句点 (.),然后按Enter键。 您会收到以下消息:250 OK 9. 键入以下命令关闭连接:QUIT您会收到以下消息:221 closing connection 10. 验证收件人是否收到您发送的消息。如果在应用程序事件日志中出现任何错误事件消息,或者接收邮件时出现问题,请检查主机的配置或通信。高级测试 除本文前面列出的基本测试步骤外,您还可以使用送达回执对邮件进行双向测试。您可以使用此方法验证SMTP服务器是否可以接受入站连接,并且为发件人生成一个送达回执以测试SMTP服务器的出站连接。

  要为测试邮件请求送达回执,请参见本文“基本测试”一节的第 4 步,以确保提供的信息是可以接收送达回执的有效电子邮件地址。然后在本文“基本测试”一节的第 5 步中,在Telnet会话中键入以下命令:RCPT TO:User@Site.Domain.Com notify=success, failurestelnet mail.contoso.com 25 220 site.contoso.com Microsoft Exchange Internet Mail Connector EHLO test.com250 OK MAIL FROM:Admin@test.com 250 OK - MAIL FROM Admin@test.com RCPT TO:User@Domain.Com 250 OK - Recipient User@ Domain.Com DATA 354 Send data. End with CRLF.CRLF Subject:test message 按两次Enter键。This is a test message you will not see a response from this command.在下一个空行中键入英文句点 (.),然后按Enter键。 250 OK QUIT 221 closing connection 传送邮件的应答: 500 格式错误,命令不可识别(此错误也包括命令行过长)501 参数格式错误502 命令不可实现503 错误的命令序列504 命令参数不可实现211 系统状态或系统帮助响应214 帮助信息220 服务就绪221 服务关闭传输信道421 服务未就绪,关闭传输信道(当必须关闭时,此应答可以作为对任何命令的响应)250 要求的邮件操作完成251 用户非本地,将转发向450 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)550 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)451 放弃要求的操作;处理过程中出错551 用户非本地,请尝试452 系统存储不足,要求的操作未执行552 过量的存储分配,要求的操作未执行553 邮箱名不可用,要求的操作未执行(例如邮箱格式错误)354 开始邮件输入,以LF>结束554 操作。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表