Telnet到端口25以测试SMTP通信

本文介绍如何 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 <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 地址,但是最好考虑以下问题:
    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,必须确保域中存在 john@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,failure

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书是一本介绍利用Visual C++进行网络通信程序开发的书籍,书中精选了大量网络实例,涵盖了本地计算机网络编程,局域网网络通信编程,IE编程,网络通信协议编程,串口通信编程,代理服务器编程和高级网络通信编程。每个工程实例都提供了完整的源代码,读者可以很容易地根据需要进行二次开发。本书适合进行网络通信开发的人员阅读,同时也可以作为科研单位,高校相关专业人员的参考书籍。<br><br>目录介绍<br>第1章 Visual C++网络通信编程基础 1<br>1.1 Winsock1.1编程技术 1<br>1.1.1 Winsock的基本概念 1<br>1.1.2 Winsock的编程特点 2<br>1.1.3 Winsock基本的API 2<br>1.1.4 Winsock的异步模式 7<br>1.1.5 面向连接协议和无连接协议 20<br>1.2 Winsock 2.0编程技术 21<br>1.2.1 Winsock 2.0技术说明 21<br>1.2.2 Winsock 2.0新增函数 25<br>1.2.3 Winsock网络程序——聊天室 26<br>1.3 CAsyncSocket编程技术 38<br>1.3.1 CAsyncSocket类的组成 38<br>1.3.2 CAsyncSocket编程模型 39<br>1.4 CSocket编程技术 41<br>1.4.1 CSocket类的组成 42<br>1.4.2 CSocket应用实例——聊天室 43<br>1.5 WinInet编程技术 52<br><br>第2章 本地计算机网络编程 57<br>2.1 获取计算机的名称和IP地址 57<br>2.2 获取计算机的子网掩码 60<br>2.3 获取计算机的DNS设置 62<br>2.4 获取计算机的网卡地址 63<br>2.5 获取计算机安装的协议 65<br>2.6 获取计算机提供的服务 67<br>2.7 获取计算机的所有网络资源 69<br>2.8 修改本地计算机的网络设置 70<br>2.9 获取计算机TCP/IP的所有信息 74<br><br>第3章 局域网网络通信编程实例 79<br>3.1 获取网上邻居 79<br>3.1.1 实现原理 80<br>3.1.2 实例实现 83<br>3.2 IP地址和主机名之间的转换 87<br>3.2.1 实现原理 87<br>3.2.2 实例实现 89<br>3.3 映射网络驱动器 93<br>3.3.1 实现原理 93<br>3.3.2 实例实现 95<br>3.4 局域网消息发送程序Net Send 97<br>3.4.1 实现原理 98<br>3.4.2 实例实现 101<br>3.5 获取局域网内其他计算机的信息 103<br><br>第4章 IE编程实例 111<br>4.1 简单的浏览器的实现 111<br>4.1.1 实现原理 111<br>4.1.2 实例实现 112<br>4.2 删除IE相关历史记录 116<br>4.2.1 实现原理 116<br>4.2.2 实例实现 117<br>4.3 将应用程序加入到IE工具栏 121<br>4.3.1 实现原理 122<br>4.3.2 实例实现 123<br>4.4 超级链接的实现 127<br>4.4.1 实现原理 127<br>4.4.2 实例实现 128<br>4.5 禁止IE的弹出窗口 132<br>4.5.1 实现原理 132<br>4.5.2 实例实现 133<br>4.6 禁止浏览某些网站 139<br>4.6.1 实现原理 139<br>4.6.2 实例实现 139<br>4.7 IE收藏夹 142<br>4.7.1 实现原理 142<br>4.7.2 实例实现 142<br>4.8 设置桌面快捷方式和活动桌面 145<br>4.8.1 实现原理 145<br>4.8.2 实例实现 146<br><br>第5章 基本网络编程实例 150<br>5.1 点对点文件传输 150<br>5.2 端口扫描程序 155<br>5.2.1 实现原理 155<br>5.2.2 实例实现 155<br>5.3 Finger编程 161<br>5.3.1 实现原理 162<br>5.3.2 实例实现 164<br>5.4 Sniff编程 166<br>5.4.1 实现原理 166<br>5.4.2 实例实现 167<br>5.5 Internet文件下载 178<br>5.5.1 实现原理 178<br>5.5.2 实例实现 180<br><br>第6章 网络通信协议编程实例 184<br>6.1 FTP协议 185<br>6.1.1 FTP工作原理 185<br>6.1.2 FTP数据表示 186<br>6.1.3 FTP命令 187<br>6.1.4 FTP应答 192<br>6.1.5 FTP客户端实例方法 194<br>6.1.6 FTP客户端实例实现 201<br>6.2 SMTP协议 221<br>6.2.1 SMTP会话 221<br>6.2.2 SMTP信件 225<br>6.2.3 SMTP客户端实例方法 232<br>6.2.4 SMTP客户端实例实现 233<br>6.3 POP3协议 259<br>6.3.1 POP3会话 259<br>6.3.2 POP3信件 264<br>6.3.3 POP3客户端实例方法 268<br>6.3.4 POP3客户端实例实现 268<br>6.4 ICMP协议 287<br>6.4.1 ICMP报文格式 287<br>6.4.2 ICMP时间戳请求与应答 289<br>6.4.3 Ping程序的实现 291<br>6.4.4 TraceRoute程序的实现 300<br>6.5 Telnet协议 308<br>6.5.1 Telnet协议 308<br>6.5.2 NVT ASCII字符集 309<br>6.5.3 协商选项 309<br>6.5.4 BBS实例实现 310<br>6.6 HTTP协议 323<br>6.6.1 HTTP会话 324<br>6.6.2 HTTP数据 329<br>6.6.3 HTTP客户端程序的实现 329<br>6.6.4 HTTP服务器实例实现 343<br><br>第7章 Modem/串口通信编程实例 353<br>7.1 AT命令 353<br>7.1.1 Modem状态 353<br>7.1.2 AT命令 354<br>7.1.3 Modem返回信息码 354<br>7.2 MSCOMM控件编程实例 355<br>7.2.1 实现原理 355<br>7.2.2 实例实现 356<br>7.3 串口通信API编程实例 360<br>7.3.1 打开和关闭串口 360<br>7.3.2 串口配置 362<br>7.3.3 串口属性设置 365<br>7.3.4 缓冲区控制 366<br>7.3.5 串口读写 367<br>7.3.6 通信事件 369<br>7.3.7 设备控制命令 370<br>7.3.8 实例实现 370<br><br>第8章 代理服务器编程实例 378<br>8.1 Socks 5协议编程 379<br>8.1.1 实例原理 386<br>8.1.2 实例实现 388<br>8.2 HTTP代理服务器实例 397<br>8.2.1 主框架代码分析 397<br>8.2.2 代理类CProxyServer的实现 399<br><br>第9章 高级实例解析 409<br>9.1 串口通信高级编程实例 409<br>9.1.1 主程序结构和流程 409<br>9.1.2 实例演示 409<br>9.1.3 实例原理 410<br>9.1.4 实例设计 414<br>9.1.5 代码分析 414<br>9.2 网络流量监控实例 425<br>9.2.1 主程序结构和流程 426<br>9.2.2 实例演示 426<br>9.2.3 实例原理 426<br>9.2.4 实例设计 428<br>9.2.5 代码分析 429<br>9.3 网站下载实例 438<br>9.3.1 主程序结构和流程 438<br>9.3.2 实例演示 438<br>9.3.3 实例原理 439<br>9.3.4 实例设计 441<br>9.3.5 代码分析 442<br>9.4 网络五子棋实例 458<br>9.4.1 主程序结构和流程 458<br>9.4.2 实例演示 458<br>9.4.3 实例原理 459<br>9.4.4 实例设计 459<br>9.4.5 代码分析 459<br>9.5 语音聊天实例 466<br>9.5.1 主程序结构和流程 467<br>9.5.2 实例演示 467<br>9.5.3 实例原理 468<br>9.5.4 实例设计 472<br>9.5.5 代码分析 473<br>9.6 远程控制实例 482<br>9.6.1 主程序结构和流程 482<br>9.6.2 实例演示 483<br>9.6.3 实例原理 484<br>9.6.4 实例设计 485
本书是一本介绍利用Visual C++进行网络通信程序开发的书籍,书中精选了大量网络实例,涵盖了本地计算机网络编程,局域网网络通信编程,IE编程,网络通信协议编程,串口通信编程,代理服务器编程和高级网络通信编程。每个工程实例都提供了完整的源代码,读者可以很容易地根据需要进行二次开发。本书适合进行网络通信开发的人员阅读,同时也可以作为科研单位,高校相关专业人员的参考书籍。<br><br>目录介绍<br>第1章 Visual C++网络通信编程基础 1<br>1.1 Winsock1.1编程技术 1<br>1.1.1 Winsock的基本概念 1<br>1.1.2 Winsock的编程特点 2<br>1.1.3 Winsock基本的API 2<br>1.1.4 Winsock的异步模式 7<br>1.1.5 面向连接协议和无连接协议 20<br>1.2 Winsock 2.0编程技术 21<br>1.2.1 Winsock 2.0技术说明 21<br>1.2.2 Winsock 2.0新增函数 25<br>1.2.3 Winsock网络程序——聊天室 26<br>1.3 CAsyncSocket编程技术 38<br>1.3.1 CAsyncSocket类的组成 38<br>1.3.2 CAsyncSocket编程模型 39<br>1.4 CSocket编程技术 41<br>1.4.1 CSocket类的组成 42<br>1.4.2 CSocket应用实例——聊天室 43<br>1.5 WinInet编程技术 52<br><br>第2章 本地计算机网络编程 57<br>2.1 获取计算机的名称和IP地址 57<br>2.2 获取计算机的子网掩码 60<br>2.3 获取计算机的DNS设置 62<br>2.4 获取计算机的网卡地址 63<br>2.5 获取计算机安装的协议 65<br>2.6 获取计算机提供的服务 67<br>2.7 获取计算机的所有网络资源 69<br>2.8 修改本地计算机的网络设置 70<br>2.9 获取计算机TCP/IP的所有信息 74<br><br>第3章 局域网网络通信编程实例 79<br>3.1 获取网上邻居 79<br>3.1.1 实现原理 80<br>3.1.2 实例实现 83<br>3.2 IP地址和主机名之间的转换 87<br>3.2.1 实现原理 87<br>3.2.2 实例实现 89<br>3.3 映射网络驱动器 93<br>3.3.1 实现原理 93<br>3.3.2 实例实现 95<br>3.4 局域网消息发送程序Net Send 97<br>3.4.1 实现原理 98<br>3.4.2 实例实现 101<br>3.5 获取局域网内其他计算机的信息 103<br><br>第4章 IE编程实例 111<br>4.1 简单的浏览器的实现 111<br>4.1.1 实现原理 111<br>4.1.2 实例实现 112<br>4.2 删除IE相关历史记录 116<br>4.2.1 实现原理 116<br>4.2.2 实例实现 117<br>4.3 将应用程序加入到IE工具栏 121<br>4.3.1 实现原理 122<br>4.3.2 实例实现 123<br>4.4 超级链接的实现 127<br>4.4.1 实现原理 127<br>4.4.2 实例实现 128<br>4.5 禁止IE的弹出窗口 132<br>4.5.1 实现原理 132<br>4.5.2 实例实现 133<br>4.6 禁止浏览某些网站 139<br>4.6.1 实现原理 139<br>4.6.2 实例实现 139<br>4.7 IE收藏夹 142<br>4.7.1 实现原理 142<br>4.7.2 实例实现 142<br>4.8 设置桌面快捷方式和活动桌面 145<br>4.8.1 实现原理 145<br>4.8.2 实例实现 146<br><br>第5章 基本网络编程实例 150<br>5.1 点对点文件传输 150<br>5.2 端口扫描程序 155<br>5.2.1 实现原理 155<br>5.2.2 实例实现 155<br>5.3 Finger编程 161<br>5.3.1 实现原理 162<br>5.3.2 实例实现 164<br>5.4 Sniff编程 166<br>5.4.1 实现原理 166<br>5.4.2 实例实现 167<br>5.5 Internet文件下载 178<br>5.5.1 实现原理 178<br>5.5.2 实例实现 180<br><br>第6章 网络通信协议编程实例 184<br>6.1 FTP协议 185<br>6.1.1 FTP工作原理 185<br>6.1.2 FTP数据表示 186<br>6.1.3 FTP命令 187<br>6.1.4 FTP应答 192<br>6.1.5 FTP客户端实例方法 194<br>6.1.6 FTP客户端实例实现 201<br>6.2 SMTP协议 221<br>6.2.1 SMTP会话 221<br>6.2.2 SMTP信件 225<br>6.2.3 SMTP客户端实例方法 232<br>6.2.4 SMTP客户端实例实现 233<br>6.3 POP3协议 259<br>6.3.1 POP3会话 259<br>6.3.2 POP3信件 264<br>6.3.3 POP3客户端实例方法 268<br>6.3.4 POP3客户端实例实现 268<br>6.4 ICMP协议 287<br>6.4.1 ICMP报文格式 287<br>6.4.2 ICMP时间戳请求与应答 289<br>6.4.3 Ping程序的实现 291<br>6.4.4 TraceRoute程序的实现 300<br>6.5 Telnet协议 308<br>6.5.1 Telnet协议 308<br>6.5.2 NVT ASCII字符集 309<br>6.5.3 协商选项 309<br>6.5.4 BBS实例实现 310<br>6.6 HTTP协议 323<br>6.6.1 HTTP会话 324<br>6.6.2 HTTP数据 329<br>6.6.3 HTTP客户端程序的实现 329<br>6.6.4 HTTP服务器实例实现 343<br><br>第7章 Modem/串口通信编程实例 353<br>7.1 AT命令 353<br>7.1.1 Modem状态 353<br>7.1.2 AT命令 354<br>7.1.3 Modem返回信息码 354<br>7.2 MSCOMM控件编程实例 355<br>7.2.1 实现原理 355<br>7.2.2 实例实现 356<br>7.3 串口通信API编程实例 360<br>7.3.1 打开和关闭串口 360<br>7.3.2 串口配置 362<br>7.3.3 串口属性设置 365<br>7.3.4 缓冲区控制 366<br>7.3.5 串口读写 367<br>7.3.6 通信事件 369<br>7.3.7 设备控制命令 370<br>7.3.8 实例实现 370<br><br>第8章 代理服务器编程实例 378<br>8.1 Socks 5协议编程 379<br>8.1.1 实例原理 386<br>8.1.2 实例实现 388<br>8.2 HTTP代理服务器实例 397<br>8.2.1 主框架代码分析 397<br>8.2.2 代理类CProxyServer的实现 399<br><br>第9章 高级实例解析 409<br>9.1 串口通信高级编程实例 409<br>9.1.1 主程序结构和流程 409<br>9.1.2 实例演示 409<br>9.1.3 实例原理 410<br>9.1.4 实例设计 414<br>9.1.5 代码分析 414<br>9.2 网络流量监控实例 425<br>9.2.1 主程序结构和流程 426<br>9.2.2 实例演示 426<br>9.2.3 实例原理 426<br>9.2.4 实例设计 428<br>9.2.5 代码分析 429<br>9.3 网站下载实例 438<br>9.3.1 主程序结构和流程 438<br>9.3.2 实例演示 438<br>9.3.3 实例原理 439<br>9.3.4 实例设计 441<br>9.3.5 代码分析 442<br>9.4 网络五子棋实例 458<br>9.4.1 主程序结构和流程 458<br>9.4.2 实例演示 458<br>9.4.3 实例原理 459<br>9.4.4 实例设计 459<br>9.4.5 代码分析 459<br>9.5 语音聊天实例 466<br>9.5.1 主程序结构和流程 467<br>9.5.2 实例演示 467<br>9.5.3 实例原理 468<br>9.5.4 实例设计 472<br>9.5.5 代码分析 473<br>9.6 远程控制实例 482<br>9.6.1 主程序结构和流程 482<br>9.6.2 实例演示 483<br>9.6.3 实例原理 484<br>9.6.4 实例设计 485<br>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值