了解内部传输组件
上一次修改主题: 2005-05-24
本主题详细地讲述了在使用简单邮件传输协议 (SMTP) 接收和发送邮件的过程中所涉及到的组件。此外,本主题还讲述了这些组件在典型的邮件流过程中是如何工作的。下面是邮件传输过程中所涉及到的重要组件:
- 路由引擎
Microsoft® Exchange Routing Engine(默认 Exchange 服务中的一个服务)负责确定可用的邮件传递路径中开销最低的一条路径。在邮件传递过程中,它将此信息提供给高级排队引擎。 - 高级排队引擎
高级排队引擎负责邮件传递过程中的几个方面。具体地说,高级排队引擎从 SMTP 或 Microsoft Exchange 存储驱动器中检索邮件,对它们进行分类,确定每封邮件的目的地,然后为邮件在等待传递的过程中可以被分配到的多个队列提供一个接口。 - 邮件分类程序
邮件分类程序是高级排队引擎的一个组件,它向全局编录服务器发送轻型目录访问协议 (LDAP) 查询以执行目录查找。这些查询检索下列信息:- 收件人的电子邮件地址
- 收件人邮箱所在的邮箱存储
- 驻留该邮箱存储的 Exchange 服务器
下图说明了邮件流中所涉及到的传输组件。带阴影的区域表示传输组件。
接收 Internet 邮件
Exchange 依靠 DNS、SMTP 协议、邮件分类程序、高级排队引擎以及 Exchange 路由引擎来接收 Internet 邮件。这些组件执行下列任务以便将 Internet 邮件传递到 Exchange 组织中的用户:
- 发送方 SMTP 服务器使用 DNS 查询目标域或目标服务器的首选 MX(邮件交换器)记录。DNS 返回 A(主机)记录列表,这些记录将解析为服务器的 Internet 协议 (IP) 地址。
- 发送方 SMTP 服务器启动与目标 SMTP 服务器的 25 端口的连接。目标 SMTP 服务器是位于物理网关服务器上的 SMTP 虚拟服务器,为接受邮件要发送到的域的传入 Internet 邮件而配置。
- 理想情况下,除非服务器开放中继支持(强烈反对这样做),否则,入站 SMTP 服务器将只接受发往收件人策略中定义的 SMTP 邮件域的传入邮件。
- 接受邮件后,SMTP 虚拟服务器对该邮件创建一个信封 -- 该邮件结构称为 MAILMSG。MAILMSG 包含邮件的所有属性,其中包括发件人和收件人名称。
- “邮件分类程序”对全局编录服务器执行 LDAP 查询,以找到收件人的 homeMdb 属性。然后,邮件分类程序在 MAILMSG 对象上标记该 Exchange 服务器的完全限定域名 (FQDN)。homeMdb 属性是用户的主邮箱服务器,即用户的邮箱存储和邮箱所在的服务器。
- 将发生下面的两个事件之一:
- 如果用户的邮箱存储位于该 Exchange 服务器上,则邮件分类程序将对邮件进行标记以便进行本地传递,然后由“高级排队引擎”将邮件传输到该 Exchange 存储驱动器。然后,Exchange 存储驱动器将邮件传递到邮箱存储。
- 如果用户的邮箱存储不位于该 Exchange 服务器上,则邮件分类程序将邮件传输到高级排队引擎。然后,高级排队引擎调用“Exchange 路由引擎”,以确定将邮件发送到服务器的最佳途径(基于链接状态路由),并确定邮件到达用户的主服务器的路径中的下一目的地或下一跃点。
- 最后,高级排队引擎借助邮件分类程序所提供的目的地信息以及路由引擎所提供的路由信息,以下列方式之一将邮件发送到其最终目的地:
- 如果目的地是本地域,则邮件将被传递到位于用户邮箱所在的 Exchange 服务器上的 SMTP 虚拟服务器。如果用户的邮箱位于远程路由组中,则邮件可能必须通过其他连接器发送。
- 如果目的地在 Exchange 组织之外,则通过另一个远程队列将邮件传递到远程域的 SMTP 服务器。只有在应用了下面的某个配置的情况下,传入邮件才会发送到远程域:
- Exchange 服务器开放了中继支持。
- 发送邮件的用户拥有中继权限。
- 配置了另一个连接器以便允许将邮件中继到这些域。
- 如果目的地是连接另一个系统或早期版本 Exchange 的连接器,则 Exchange 存储驱动器将邮件提交到邮件传输代理 (MTA)。
发送 Internet 邮件
Exchange 发送 Internet 邮件时所依靠的组件与接收 Internet 邮件时所依靠的组件相同:DNS、SMTP 协议、邮件分类程序、高级排队引擎以及 Exchange 路由引擎。Exchange 通过以下方式发送 Internet 邮件:
- 内部用户向远程域发送邮件。该邮件是在用户邮箱所在的 Exchange 服务器上提交的。
- 该邮件通过下面的两种方式之一提交到“高级排队引擎”:
- 如果邮件是使用 Microsoft Office Outlook® Web Access 或 Outlook (MAPI) 客户端发送的,则 Exchange 存储通过存储驱动器将邮件提交到高级排队引擎。
- 如果邮件是使用邮局协议 (POP) 或 Internet 邮件访问协议 (IMAP) 客户端发送的,则 SMTP 将邮件传递到高级排队引擎。
- 然后“邮件分类程序”用收件人地址查询全局编录服务器,以找到用户。如果收件人地址不在收件人策略中,或者没有与代理地址匹配的收件人(收件人地址将不存储在 Active Directory 中),则邮件分类程序确定邮件是发往远程域的。
- 高级排队引擎调用 “Exchange 路由引擎”,为到达与远程域更为匹配的地址空间路径确定下一目的地或下一跃点。
- 服务器使用此信息确定是发送邮件、将其路由到智能主机,还是使用具有远程地址空间的 SMTP 连接器。
- 如果存在多个处理出站邮件的连接器或虚拟服务器,则高级排队引擎确定地址空间与远程域的地址空间最为匹配的虚拟服务器或连接器,以及对该连接器的所有限制。
- 邮件被路由到出站连接器的 SMTP 虚拟服务器或者负责邮件传递的出站 SMTP 虚拟服务器。
- 然后,位于执行分类的 Exchange 服务器上的 SMTP 虚拟服务器使用它的元数据库信息来确定远程域的路由操作属性。
- 然后,该 Exchange 服务器上的 SMTP 虚拟服务器执行以下两个任务之一:
- 使用 DNS 来查找目标域的 IP 地址,然后尝试传递邮件。
- 将邮件转发到负责 DNS 解析和邮件传递的智能主机。