Exchange 服务、组件很多,邮件在内部的流向也比较复杂,再此详细介绍一下。


邮件流图

下图为官方的邮件流图。

邮件在Exchange中的路由过程_服务器

详解

服务

  • Front End Transport service on Client Access servers:

即客户段访问服务器的前端传输服务: 为所有的入站邮件提供无状态的代理。也可以配置为出站邮件的无状态代理。 该服务不检查邮件内容,不直接和 Mailbox Transport service on Mailbox Servers 通讯,也不会在本地对邮件进行排队。

  • Transport service on Mailbox servers:

即邮箱服务器的传输服务:所有邮件流必须经过此服务处理。 该服务会对邮件进行分类、对内容进行检查。 该服务不直接和Mailbox Database直接通讯。 真正和Mailbox Database通讯的服务是Mailbox Transport service【下一个要介绍的服务】。

该服务从本地或其他邮箱服务器的邮箱传输服务(内部邮件)、或客户端访问服务器的前端传输服务(外部邮件)接收SMTP邮件。对邮件内容进行检查,如果启用反垃圾功能的话,也会进行反垃圾检查,然后提交到提交对列,通过分类程序进行分类并提交到传输队列。最后发送到内部的邮箱传输传递服务或通过发送连接器发送到internet。

该服务主要由以下组件组成:

SMTP Receive: 接收邮件并进行内容和反垃圾检查。

Submission:邮件提交,邮件完成内容检查后,由Submission将邮件提交到提交队列。

Categorizer: 分类程序,每次从提交队列中选取一封邮件进行分类,所谓分类,就是进行收件人解析、路由解析、内容转换。

SMTP Send: 跟进分类程序的收件人和路由解析结果执行发送动作。


  • Mailbox Transport service on Mailbox servers:

即邮箱服务器的邮箱传输服务: 由该服务和Mailbox database通讯。 该服务实际上又是由独立的两个服务来组成,Mailbox Transport Submission service 和 Mailbox Transport Delivery service。

  • Transport Submission service:

即邮箱传输提交服务: 该服务通过RPC连接到本地的Mailbox database从用户信箱检索邮件,并通过SMTP发送到本地或其他邮箱服务器的传输服务。由传输服务进行分类然后进行路由。

  • Mailbox Transport Delivery service:

即邮箱传输传递服务: 该服务从本地或者其他邮箱服务器的传输服务接收邮件,然后通过RPC连接到本地的Mailbox database,将邮件投递到用户信箱。

案例说明

  • 内部用户a给内部用户b和外部用户c发送邮件

1."邮箱传输提交服务"通过RPC连接到数据库检索邮件-> 2.将邮件发送到"传输服务","传输服务"的"SMTP Receive"组件接收,进行内容检查->3.Submission组件进行提交到提交队列->分类程序选取邮件,进行收件人解析,路由解析,决定发送到哪->4.提交到队列准备发送->5.收件人b是内部用户,c是外部用户->6.将发送给b的邮件发送到邮箱传输传递服务,将发送给c的邮件直接通过发送连接器发送到互联网-> 7.邮箱传输传递服务通过RPC连接数据库,将邮件投递到B用户的邮箱。

如下图:

邮件在Exchange中的路由过程_邮件发送_02

  • 外部用户C发给内部用户A

1.客户端访问服务器"前端传输服务"接收邮件->2.发送到邮箱服务器的"传输服务","SMTP Receive"组件接收,进行内容检查->3.Submission组件提交至提交队列->4.分类程序选取邮件,进行收件人解析,路由解析->5.提交到队列准备发送->6.收件人A为内部用户,直接发送到邮箱传输传递服务->7.邮箱传输传递服务通过RPC连接数据库,将邮件投递到用户邮箱。

如下图:

邮件在Exchange中的路由过程_服务器_03