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
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进行通
信。


发布评论