高级排队引擎不是 SMTP 服务中唯一的 COM 事件发送器。SMTP 协议引擎也是 COM 事件的主要发送器,它专门发送 SMTP 协议事件。核心 SMTP 协议引擎负责所有标准 SMTP 通信,并处理大部分标准 SMTP 服务扩展(即 RFC 821 和 RFC 1869 中定义的扩展简单邮件传输协议 (ESMTP) 标准)。可以使用协议事件来修改 SMTP 协议,以便添加新的 ESMTP 命令,甚至更改现有命令的操作。Exchange Server 2003 使用这些协议事件来实现 Exchange 特有的扩展 SMTP 命令,以便更高效地与组织中的其他 Exchange 服务器通信(相对于使用标准 SMTP 而言)。
当使用 telnet 连接到 SMTP 虚拟服务器的 TCP 端口时,可以验证 Exchange Server 2003 的扩展 SMTP 命令是否已加载。如下图所示,当发出 EHLO 命令以启动 ESMTP 连接时,服务器的响应指出 SMTP 虚拟服务器支持的功能。发出 HELP 命令时,将列出标准命令。
下表说明了 Exchange 扩展的 SMTP 服务所支持的 SMTP 功能。
Exchange Server 2003 中受支持的 SMTP 功能
SMTP 服务器响应
注释
8BITMIME
指出本地 SMTP 虚拟服务器支持八位的多用途 Internet 邮件扩展 (MIME) 邮件。
AUTH、AUTH GSSAPI NTLM LOGIN 以及 AUTH=LOGIN
指出本地 SMTP 虚拟服务器支持 SMTP 身份验证服务扩展。AUTH 关键字之后的其他信息指出支持的身份验证机制。
BDAT、CHUNKING
DATA 命令的另一种形式,采用两个参数。如果 SMTP 虚拟服务器用 CHUNKING 响应 EHLO 关键字,则意味着它支持BDAT 命令,并将成块地接受邮件。
第一个参数指示二进制数据包的长度,这样 SMTP 主机便不必持续地扫描到数据的末尾。接收方服务器计算邮件的字节数,如果邮件大小等于 BDAT 命令发送的值,则该服务器便认为已接收了全部的邮件数据。第二个参数指示该数据包是否是当前传输中的最后一个数据包。第二个参数是可选的。
BINARYMIME
对 MAIL 命令的 BODY 参数使用“BINARYMIME”值,意味着 SMTP 虚拟服务器接受没有传输编码但包含二进制内容的邮件。如果 SMTP 服务器接受 BODY 参数为 BINARYMIME 的 MAIL 命令,则表示同意保留使用 BDAT 命令传递的每个八位字节中的所有位。BINARYMIME SMTP 扩展只能与 CHUNKING 一起使用。
DATA
远程主机发送的、用于启动邮件内容传输的命令。
DSN
一个 ESMTP 命令,用于启用在 Request for Comments (RFC) 1891 中定义的传递状态通知。
EHLO
由客户端发送,指示 ESMTP 会话开始。服务器可以在它对 EHLO 的响应中表明自己支持 ESMTP 命令(图 6.14)。
ENHANCEDSTATUSCODES
指出 SMTP 服务器提供增强的错误状态代码。所有 SMTP 状态响应的文本部分的开头都有 RFC 1893 中定义的状态