邮件服务器是如何路由邮件

简介:
企业在部署大型的邮件服务器,尤其是要考虑到邮件路由的问题,邮件路由是企业邮件服务经常会遇到的问题,会导致退信或是新邮件延迟时间较长。目前企业使用邮件服务器的架构多是使用统一的 SMTP 网关,作为出口,内部邮件通过路由分发到各 Site ,外部邮件通过 SMTP 网关去收发,然后再通过路由到各 Site 。企业的邮件服务器接到邮件后,先去查找地址的有效性, Notes 是从本地服务器上的地址簿去查找,各 Site 之间进行地址簿同步复制,使用 Hub 节点来复制,延迟的时间比较长, Exchange GC 里去查找邮件地址信息,处理起来要更加方便些。
 
举个常见的邮件服务器部署例子,企业部署两台邮件服务器做冗余,一台放在内部,处理本地之间的邮件,另一台放在 DMZ 区,用于公网邮件的收发,两台服务器之间进行定期复制,从而保证内外部邮件的正常收发, DMZ 区的服务器兼做 SMTP 网关服务器,通过防火墙和 McAfee 反垃圾邮件去保护。如果在此基础上,增加 Site 的话,就要去规划企业内部的邮件路由,企业就会采用 Hub 方式去部署邮件服务器。
我们先看一下 Notes 邮件系统路由邮件的基本步骤:使用邮件客户端创建一条邮件消息,并将其发送给接收者。使用 Lotus Notes (NRPC) 协议将消息存放到 Domino 邮件服务器上的 MAIL.BOX 数据库,使用 SMTP 将消息发送到 Domino 邮件服务器,该服务器必须运行 SMTP 监听器任务。 SMTP 监听器任务将消息存放到 MAIL.BOX(Lotus Notes、IMAP 客户机和 POP3 客户机),或使用 HTTP 将消息发送到 Domino 邮件服务器,该服务器必须运行 HTTP 任务。 HTTP 任务将该消息存放到 MAIL.BOX(Web 客户机、iNotes 和 DWA)。路由器在 MAIL.BOX 中找到这条消息,并确定消息的接收者。路由器检查路由表,以计算将消息发送给接收者的下一个步骤,并确定用于传输消息的适当协议 —— SMTP 或 Notes 路由(NRPC): 对于 SMTP 路由,路由器将连接到目标服务器 —— 接收者的邮件服务器、中转主机、智能主机或接收者  Internet 域中的服务器之一 —— 然后传输消息。 对于 Notes 路由(NRPC),路由器将消息移动到服务器上的 MAIL.BOX 数据库,这是通向接收者邮件服务器的下一站。该服务器上的路由器又将该消息发送到下一站,直至发送到接收者服务器上的 MAIL.BOX 数据库。接收者服务器上的路由器找到该消息(在某个 Domino 服务器的 MAIL.BOX 中),并将其发送到接收者的邮件文件。最后,您通过邮件客户端从邮件文件获取该消息。取决于邮件客户端的类型,可选择使用的协议包括:NRPC、IMAP、POP3 或 HTTP 。
 
默认情况下,Lotus Domino 使用 NRPC(也称为 Lotus Notes 路由或 Notes 路由协议)在服务器之间传输邮件。 Notes 路由使用 Domino Directory 中的信息确定将邮件发送到哪里,并将邮件从发送者的邮件服务器移动到接收者的邮件服务器。发送者的服务器上的路由器决定接收消息的下一个服务器,即通向消息目的地的路径的下一站。每个服务器使用自己的路由表计算通向目标服务器的路径的下一站。当消息到达目标服务器时,其上的路由器就将它投递到接收者的邮件文件。
 
Notes 路由传输消息的方法,使用 Notes 地址给接收者发送邮件时(例如 Jane Doe/Acme),路由器将从 MAIL.BOX 选择一条消息,以确定邮件的路径。路由器首先在 Domino Directory 中查找接收者 Ja ck /Acme 的 Person 文档。Person 文档包含  Jack 的邮件服务器的名称。路由器使用从该信息获得的网络信息(即路由表)确定消息的下一站。路由器如何分发消息取决于接收者的邮件文件的位置,其位置可以是:同一个服务器,在相同的 Notes 命名网络(NNN)中的不同服务器,在本地 Domino 域中的不同 Notes 命名网络中的服务器,或外部 Domino 域中的服务器。
 
对于同一服务器上的接收者,路由器在检查接收者的 Person 文档之后,发现其邮件服务器与发送者服务器相同,它将把消息投递到接收者的邮件文件。在同一 NNN 中将消息传输给另一个服务器上的接收者,如果发送者不在相同的邮件服务器上,路由器将检查 Domino Directory 以确定服务器是否在相同的 Domino 域中。如果在 Domino Directory 中找到目标服务器的 Server 文档,路由器将检查该文档以确定该服务器的网络信息。在 Ports、Notes Network Ports 和 Server 文档选项卡上,服务器被分配了一个或多个 NNN 。 NNN 是在特定 Domino 域中的一组服务器,它们共享一个通用的协议,并且由 LAN 或调制解调器连接起来。如果两个服务器共享一个 NNN,路由器立即将消息从发送者服务器上的 MAIL.BOX 文件路由到接收者服务器上的 MAIL.BOX 文件。然后,接收者服务器上的路由器将消息发送到接收者的邮件文件。因为邮件在 NNN 中是自动路由的,所以您不必创建其他连接或文档。
 
如果发送者和接收者的邮件服务器在相同的 Domino 域中,但不共享同一个邮件服务器或 NNN,那么要使传输能够继续下去,必须在这两个网络之间建立某种连接。您可以使用以下方式之一在 NNN 之间建立一个连接:一个属于多个 NNN 的成员的 “桥接” 服务器和一个 Connection 文档,Connection 文档提供在 NNN 之间路由邮件的信息之后,源网络和目标网络就可以存在不同的 Domino 域中。该文档包含路由器查找目标网络所需的全部信息。
 
默认情况下,Lotus Domino 使用 Notes 路由协议在服务器之间传输邮件,但您可以配置 Domino,让它使用 SMTP 路由邮件。使用 SMTP 路由的消息传输被执行为两个服务器之间的点对点交换。发送 SMTP 服务器直接联系接受 SMTP 服务器,并建立一个双向传输通道。通过 SMTP 发送消息需要:发送服务器检查接收者的地址(格式为localpart_cnnew1@ domain),并查找域名系统(DNS)中的域。DNS 返回该域的 Mail Exchanger (MX) 记录,显示该域中通过 SMTP 接收邮件的服务器的 IP 地址。发送服务器通过 TCP/IP 连接到目标服务器,并在端口 25 建立一个 SMTP 连接用于传输消息,传输完成之后关闭该连接。
Exchange2010 是使用 Active Directory 站点进行路由,Active Directory 站点是基于网络物理方面的逻辑配置组件。创建 Active Directory 站点的主要目的是定义网络中的哪些子网通过优化 Active Directory 复制通信控制的方式建立连接。Active Directory 站点代表 Exchange 2010 的路由边界。安装了集线器传输服务器角色的计算机根据 Active Directory 站点拓扑做出路由决策。然后是确定站点成员身份,默认情况下,一个 Active Directory 林只能包含一个 Active Directory 站点。此 Active Directory 站点的默认名称为 Default-First-Site-Name。如果未创建任何其他 Active Directory 站点,林中的所有域成员计算机都是 Default-First-Site-Name 的成员。不必配置子网与站点的关联。如果创建了其他 Active Directory 站点,则必须指定为该 Active Directory 站点分配的子网。
 
每个 Active Directory 站点与一个或多个 IP 子网关联。管理员为配置为域控制器和全局编录服务器的计算机分配 Active Directory 站点成员身份。如果其他域成员计算机(例如 Exchange 服务器)配置为使用与 Active Directory 站点关联的 IP 子网中的 IP 地址,则会自动为其分配 Active Directory 站点成员身份。拥有相同 Active Directory 站点成员身份的计算机被认为具有良好的网络连接。服务器始终是一个 Active Directory 站点的成员。
 
如果应用程序可以确定安装该应用程序的计算机以及林中的其他计算机的 Active Directory 站点成员身份,然后使用该信息控制通信流,则该应用程序是站点感知应用程序。如果站点感知应用程序必须使用其他服务器(例如域控制器或全局编录服务器)的服务,则为与请求这些服务的计算机拥有相同 Active Directory 站点成员身份的服务器分配优先级。Exchange 2010 是站点感知应用程序,使用 Active Directory 拓扑来路由邮件,并与安装了其他 Exchange 2010 服务器角色的计算机上运行的服务进行通信。Active Directory 站点不仅是路由边界,而且是服务发现边界。
 
确定域成员计算机的站点成员身份取决于一系列 DNS 查询,这些查询将本地 IP 地址与已定义的子网进行比较,然后确定相应的站点成员身份关联。为了减少与 DNS 查询有关的开销,Exchange 2010 Active Directory 架构的增加包括 Exchange 服务器对象的 msExchServerSite 属性。此属性的值是 Exchange 服务器的 Active Directory 站点的可分辨名称。此属性是每个 Exchange 服务器对象的属性。如果站点成员身份关联存储为服务器对象的属性,则可以从 Active Directory 直接读取当前拓扑,而不必依靠 DNS 查询,并对非域计算机(例如订阅了站点的边缘传输服务器)启用站点成员身份关联。
 
Microsoft Exchange Active Directory 拓扑服务将填充 msExchServerSite 属性的值并保持该值最新。基于 Windows 的计算机启动时,网络登录服务将确定该计算机的站点成员身份。网络登录服务使用该信息查找与本地计算机位于同一个 Active Directory 站点的域控制器,然后将授权请求和身份验证请求传递到这些服务器。Microsoft Exchange Active Directory 拓扑服务使用 DsGetSiteName API 调用从网络登录服务检索站点成员身份值,并将 Active Directory 站点的可分辨名称写入 Active Directory 中的 Exchange 服务器对象的 msExchServerSite 属性。



本文转自 zhaiken 51CTO博客,原文链接:http://blog.51cto.com/zhaiken/680478,如需转载请自行联系原作者
相关文章
|
C# 数据安全/隐私保护
C#接入SMTP邮件服务
这两个引用用于C#接入邮件的SMTP服务
226 0
|
Web App开发 Android开发 iOS开发
如何在 Gmail 中设置电子邮件转发
您目前有多少个 Gmail 收件箱?您很可能至少拥有一封个人电子邮件和一封工作电子邮件。但也许你也有一个你所属的俱乐部和协会?或者,也许您正在以另一个名字过着秘密的双重生活?处理所有这些收件箱可能会让人筋疲力尽,这就是为什么您需要学习如何在 Gmail 中设置电子邮件转发。
|
JavaScript PHP
你应该知道的最好Webmail邮件客户端,
1 . Kite Kite is an opensource replacement to Gmail. Kite is a webmail designed to look a lot like gmail and to be easily deployable on a single server.
3074 0
|
网络协议 MySQL 关系型数据库