2024年4月21日发(作者:)

Exchange传输组件大揭秘(上)

作者/喻勇

导读:

本文根据笔者在微软Technet Webcast上的讲稿整理而成。文章介绍了微软Exchange Server

中的核心传输组件以及它们的工作原理,阐述了SMTP协议的内容和使用SMTP发送邮件

时的详细过程;深入地讨论了邮件传输和路由的工作机制,分析了SMTP报文的组成和

Exchange在传输邮件时的路由过程(包括AQ, Routing Engine等组件)。本文可以供Exchange

管理员深入的了解邮件传输组件的内部工作方式。

STMP协议规范和命令字

SMTP协议是随着Internet的发展逐渐规范化和进一步完善的。SMTP协议最早在RFC821

中被定义,它提供了Internet上两个节点之间传送信息的一种方式。SMTP协议非常的简单

和直观,在RFC821中,STMP由一些通过ASCII码表示的命令字组成,通过这些命令字,

两个节点之间(客户机和服务器)可以建立SMTP连接,并进行信息传递。SMTP的标准命令

字和其作用如表一:

SMTP命令

HELO

MAIL

RCPT

DATA

RSET

VRFY

作用

用于开始会话,通常在HELO后跟客户机的主机名(hostname)

用于指出发起会话的发件人,通常在MAIL后面跟From参数来指定发件人

用于指定该消息的接收人,通常在RCPT后面跟To参数来指定收件人

表示客户端开始向服务器端发送消息(邮件) 正文

放弃当前的数据传输

用以确定指定的收件人在服务器端是合法的(在发送邮件正文之前确定邮箱

是否存在),考虑到这个功能有一定的安全隐患(可能导致组织的邮件地址泄

漏),此命令在包括Exchange在内的大部分企业邮件系统中不被支持,SMTP

服务器对VRFY请求,总是会返回”非法地址”

交换客户端和服务器角色,允许客户端触发服务器端的邮件传送(此命令也

很少被使用)

关闭当前会话

表一:SMTP标准命令字和其作用

SMTP服务器监听TCP 25号端口,并对客户端发送的合法命令做出响应。我们可以通过

Telnet的方式演示一下最简单的SMTP邮件传送过程。表二中列出了使用Windows Telnet

客户端跟Exchange SMTP Server通信的过程:(粗体表示用户输入,斜体表示服务器回应)

Telnet过程

c:telnet 25

TURN

QUIT

注释

客户端通过TCP 25号端口连接服务

220 Microsoft ESMTP Mail Service, Version

器,SMTP服务器返回连接成功信息,

6.0.3790.0 ready at Tue, 18 Oct 2005 19:21:55 -0700

并返回服务器操作系统类型,版本和

当前时间。

HELO

客户端通过HELO命令跟服务器开

250 Hello [192.168.1.100]

MAIL FROM:tom@

250 2.1.0 tom@...Sender OK

RCPT TO:mike@

250 2.1.5 mike@

DATA

354 Start mail input; end with .

Hello Mike,

Let’s have dinner together.

Tom

.

250 2.6.0 <###@> Queued mail for delivery

QUIT

221 2.0.0 Service closing transmission channel

始通信,服务器以250回应表示服务

器做好了进行通信的准备。

客户端提供发信人地址。

客户端提供收信人地址。

客户端输入DATA命令,DATA之后

的字符都将作为邮件的正文。正文以

.终止。

.表示连续的回车-

换行-点号-回车-换行。正文传送完毕

以后,服务器端会生成邮件并进行下

一步的传送。

使用QUIT命令结束当前会话。

表二:使用Telnet进行SMTP会话

通过Telnet进行SMTP会话在诊断一些邮件传输问题时非常有用,微软在其知识库文档中

详细描述了使用Telnet进行SMTP会话的过程。(XFOR:Telnet 到端口 25 以测试 SMTP 通

信,/?scid=kb;zh-cn;153119)

在Exchange Server中,SMTP是邮件系统传输模块的核心,SMTP负责了组织内部邮件服务

器间邮件的传送和对外发送邮件的重任。图一表示了SMTP模块在Exchange整个系统结构

中的位置。SMTP协议栈运行在IIS的进程中,在IIS中,还有AQE和Routing模块协助SMTP

的工作。Exchange的数据库模块(Information Store)通过EXIPC作为桥梁,跟SMTP进行通

信。