邮件重新路由和“无法到达”队列

 

适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上一次修改主题: 2015-03-09

MicrosoftExchange Server 2010 中有一些邮件路由方案,在这些方案中会将未传递的邮件放入“无法到达”队列中或对其进行重新路由。

将邮件放入“无法到达”队列的决定在分类的路由阶段作出。如果在路由阶段,无法为邮件计算出路由路径,则邮件会被发送到“无法到达”队列。

重新路由邮件的决定在 SMTP 发送连接器过程中的邮件传递阶段产生。如果存在要求重新提交队列中的邮件的配置更改,则邮件会在邮件传递阶段被重新提交以进行分类,并用新配置信息进行重新路由。根据配置更改的类型不同,会将一些或所有重新提交的邮件发送到“无法到达”队列或一个不同的传递队列。

有关如何计算开销最低的路由路径的更多信息,请参阅了解邮件路由。有关分类程序如何工作的详细信息,请参阅了解传输管道

若要了解与邮件路由相关的管理任务,请参阅管理邮件路由

邮件重新路由

Exchange 中有两种类型的邮件传递:

  • “本地传递”是指将邮件发送到其邮箱与发生分类的集线器传输服务器处于同一 Active Directory 站点中的收件人。

  • “远程传递”是指将邮件传递到 Exchange 组织的其他 Active Directory 站点中的收件人和外部收件人。远程传递队列是邮件重新路由的重点。配置更改能以多种方式影响远程传递。

分类程序的路由组件在增强域名系统 (DNS) 解析期间会尝试检测是否必须重新路由队列中的邮件。在增强 DNS 解析期间,路由组件尝试检测是否必须重新路由队列。在此阶段,NextHopSolutionKey 属性解析为目标列表。这样,路由组件可以自动检测任何禁用或修改 NextHopSolutionKey 属性的配置更改。如果路由过程检测到配置更改要求重新路由队列中的邮件,则受影响队列中的邮件会重新提交给分类程序,并会重新计算开销最低的路径,整个过程都将新配置更改考虑在内。

传递入站邮件到 Exchange 数据库的存储驱动程序也可能会重新路由邮件。如果符合下列条件之一,存储驱动程序将重新提交邮件以重新进行路由:

  • 邮件位于 MAPI 传递队列中且已选择下一个跃点,但邮件尚未传递。

  • 目标邮箱已移动到另一个邮箱服务器。

如果存储驱动程序尝试将邮件发送到该邮箱服务器时,邮箱服务器不可用,则存储驱动程序会将邮件队列设为重试状态。如果继续尝试联系邮箱服务器仍不成功,则当重试间隔过期时,队列中的所有邮件将会重新提交给分类程序。

如果邮件位于非 SMTP 网关传递队列(要路由到传递代理连接器或外部连接器的队列)中,外部网关连接处理程序确定配置更改是否需要重新路由。外部网关连接处理程序是 Microsoft Exchange 传输服务的一个组件,用于管理向传递代理连接器队列和外部连接器投递目录传递邮件。例如,删除或禁用外部连接器需要将邮件重新路由到另一个连接器。

下面的列表汇总了可影响邮件路由的配置更改的类型。本主题后面的内容将详细讨论每个配置更改:

  • 无效的下一个跃点   邮件的下一个跃点已删除或修改,因此使以前计算出的路由路径失效。邮件的下一个跃点可以是一个 Active Directory 站点、连接器或传输服务器(集线器传输服务器或边缘传输服务器)。

  • 对下一个跃点的更改   下一个跃点的配置更改影响了连接。例如,对远程 Active Directory 站点中的集线器传输服务器列表的更改会引发修改下一个跃点连接。

  • 低优先路由路径   配置更改沿先前计算出的路由路径发生,但先前路由路径可以到达,则将传递已经路由的邮件。但是新的邮件会通过已更新的配置更改进行重新路由。

  • 不可用的下一个跃点   网络连接或目标服务器的可用性导致下一个跃点无法连接。但是,下一个跃点不会更改。例如,当 Active Directory 站点中的集线器传输服务器脱机时。

  • 会产生重新路由的其他情况   在某些情况下,当 DNS 连接器或智能主机连接器的 DNS MX 资源记录解析失败时,会引起配置更改。

  • 引起邮件重新路由或延迟的配置更改   当在邮件传递阶段检测到特定配置更改时,执行路由操作并重新路由邮件,或延迟传递。

无效的下一个跃点

配置更改可以使以前计算出的下一个跃点失效。在这些情况下,分类程序的路由组件可以检测配置更改,并进行重新路由,以补偿这一更改。

传递到本地计算机上的 SMTP 连接器

在将邮件传递到本地计算机上的 SMTP 连接器时,接收邮件以将其中继到其目标的服务器也是用来路由邮件的发送连接器的源服务器。这种传递在符合以下条件之一时发生:

  • 邮件在链接的接收连接器上被接收到。

  • 收件人有一个外部地址,选定连接器的源服务器是本地计算机。

如果删除或禁用了分类程序的路由组件选定的发送连接器,则会在邮件传递阶段检测到配置更改。这会引起队列中所有邮件的重新分类。

如果更改了发送连接器的配置,以删除作为连接器的源服务器的本地服务器,则会在邮件传递阶段检测到配置更改,并且重新分类队列中的所有邮件。

发送连接器地址解析方法的更改会引起队列的重新路由。可以对发送连接器进行配置,以使用 DNS 来自动解析 MX 记录和路由邮件,或者对其进行配置,以通过一个或多个智能主机来路由所有邮件。如果更改发送连接器的地址解析,则会重新路由通过此发送连接器路由的邮件。

Active Directory 站点中的 SMTP 中继

在以下情况下,会发生 Active Directory 站点中的 SMTP 邮件中继:

  • 收件人有一个外部地址,且至少发送连接器的一个源服务器是位于本地 Active Directory 站点中的 Exchange 2010 集线器传输服务器。

  • 收件人有一个外部地址,且至少发送连接器的一个源服务器是订阅到本地 Active Directory 站点的 Exchange 2010 边缘传输服务器。

  • 收件人的邮箱位于本地 Active Directory 站点中运行 Exchange Server 2007 的服务器上。

  • 收件人邮箱位于运行 Exchange Server 2003 的服务器上,并且至少选定路由组连接器的一个源服务器是本地 Active Directory 站点中的 Exchange 2010 集线器传输服务器。

  • 收件人是一个通讯组,并且此组的展开服务器是本地 Active Directory 站点中的 Exchange 2010 集线器传输服务器。

在前四种情况下,如果删除或禁用了发送连接器,则会在邮件传递阶段检测到配置更改,并重新提交队列。

在最后一种情况下,会对邮件进行排队以传递到展开服务器,并且 NextHopSolutionKey 属性包含通讯组的展开服务器的完全限定域名 (FQDN)。如果从指定的展开服务器卸载了集线器传输服务器角色,则会在邮件传递阶段检测该配置更改,并重新提交队列。

到远程 Active Directory 站点的 SMTP 中继

将邮件传递到远程 Active Directory 站点时,下一个跃点是一个不同于处理邮件的集线器传输服务器的 Active Directory 站点。这种传递产生于以下情况:

  • 收件人是一个已解析的用户、邮箱数据库或公用文件夹,且目标计算机是一个远程 Active Directory 站点中的 Exchange 2010 服务器。

  • 收件人是一个外部地址,并且为此地址选定的发送连接器的源服务器是一个远程 Active Directory 站点中的 Exchange 2010 服务器。

  • 收件人是一个外部地址,并且分类程序的路由组件选定的外部连接器的源服务器是一个远程 Active Directory 站点中的 Exchange 2010 服务器。

  • 收件人是一个通讯组,且展开服务器是远程 Active Directory 站点中的 Exchange 2010 集线器传输服务器。

  • 收件人邮箱位于 Exchange 2003 服务器上,并且作为选定路由组连接器的源服务器列出的最近的集线器传输服务器位于远程 Active Directory 站点中。

在这些情况下,如果删除了远程 Active Directory 站点,则会在邮件传递阶段检测到配置更改,并重新提交队列。

到 Exchange 2003 Server 的 SMTP 中继

在将邮件传递到 Exchange 2003 服务器时,Exchange 2010 集线器传输服务器通过路由组连接器将邮件中继到 Exchange 2003 服务器。该传递类型产生于以下情况:

  • 收件人是一个位于 Exchange 2003 服务器上的已解析的用户、邮箱数据库或公用文件夹。

  • 收件人是一个外部地址,并且为该地址选定的 SMTP 连接器的源服务器是 Exchange 2003 服务器。

  • 收件人是一个外部地址,并且为该地址选定的外部连接器的源服务器是 Exchange 2003 服务器。

  • 收件人是一个通讯组,并且指定的展开服务器是 Exchange 2003 服务器。

在这些情况下,如果删除路由组连接器,则会在邮件传递阶段检测到配置更改,并重新提交队列。

对下一个跃点的更改

在某些情况下,下一个跃点不会失效。但是,其修改方式会影响到下一个跃点目标的连接。这些配置更改在邮件传递阶段自动检测,且会将邮件传递到新的目标。

以下类型的更改会引起下一个跃点的目标列表的更新:

  • 对路由组连接器目标服务器列表的更改。

  • 对远程 Active Directory 站点中的集线器传输服务器列表的更改。

  • 对本地 Active Directory 站点中的集线器传输服务器或边缘传输服务器列表的更改。

  • 沿以前计算出的路由路径引入集线器站点。当在邮件传递阶段检测到此更改时,会调整返回给解析请求的 IP 地址列表,以便将邮件发送给集线器站点。

低优先路由路径

如果配置更改导致以前计算出的路由路径成为低优先的选择,或将此路由路径从考虑范围中排除,但此路由路径仍然可以到达,邮件仍可沿以前计算出的路由路径传递。以下配置更改属于此类别:

  • 沿路由路径添加邮件大小限制。这导致超过大小限制的邮件沿一条不同的路由路径路由。

  • 创建一条具有更少开销或更近距离的路由路径。

  • 更改连接器的地址空间。

  • 发生其他与连接器有关的更改,例如连接器的启用或连接器范围的修改。例如,如果连接器的范围发生更改(从全局更改为有限范围)的连接器位于本地 Active Directory 站点,则此更改无效。如果连接器位于一个远程 Active Directory 站点中,则在邮件传递阶段不检测更改,因为邮件在远程 Active Directory 站点而不是连接器的队列中。

  • 当路由路径尝试以 SMTP 方式中继到远程 Active Directory 站点中的邮箱服务器时,邮箱服务器会从远程 Active Directory 站点移动到本地 Active Directory 站点。

  • 当通讯组的展开服务器不再是一个展开服务器时,路由路径将尝试到达此展开服务器。

在这些情况下,现有邮件沿已经计算出的路由路径传递。因为路由路径存在且是可以访问的,已经路由的邮件不受这些配置更改的影响。但是,新提交的邮件会用已更新的配置路由。

不可用的下一个跃点

在此情况下,配置更改或网络连接更改不会使邮件路由到的下一个跃点失效,但是配置更改或网络连接更改使得下一个跃点变得不可用。这意味着由于某种原因,无法建立到下一个跃点目标的 SMTP 连接。可能的原因如下:

  • 尝试与本地站点中的当前脱机集线器传输服务器建立 SMTP 连接。

  • 远程 Active Directory 站点具有不可用或脱机集线器传输服务器。

  • 远程路由组具有不可用或脱机 Exchange 2003 桥头服务器。

  • 远程域因为网络连接问题而不可用。

分类程序的路由组件未检测到网络连接问题引起的邮件传递故障。当无法建立到下一个跃点目标的 SMTP 连接时,SMTP 发送连接器会重试队列。位于 EdgeTransport.exe.config 文件中的 MaxIdleTimeBeforeResubmit 参数的默认值是 12 小时。在可配置的重试间隔 (MaxIdleTimeBeforeResubmit) 已过期而未成功建立连接时,传递队列的所有邮件会重新提交到“提交”队列。如果连接问题仍然存在,该过程将重复。如果连接问题得到解决,邮件在邮件重试成功时发送。修改下一个跃点目标的配置更改也可以解决此问题。例如,如果问题由脱机的目标站点中的所有集线器传输服务器引起,并且您将邮箱转移到了一个不同站点中的服务器,则下一个跃点将更改到新的站点。

注释注意:
从邮件传递队列到“提交”队列的自动重新提交仅对非连接器队列发生。连接器队列保持重试模式,直到修正了问题,或邮件过期并发送了未送达报告 (NDR) 时为止。

会产生重新路由的其他情况

除了本节开头介绍的情况之外,以下情况可以导致邮件在邮件传递阶段发生重新路由:

  • DNS 连接器的 DNS MX 解析发生故障。如果 DNS MX 解析因为未找到 MX 记录的权威主机而发生故障,则会立即发送队列中邮件的 NDR。如果存在其他类型的故障,则将队列设为重试模式,直到连接建立或邮件过期。

  • 智能主机连接器的 DNS MX 解析发生故障。队列设为重试模式,直到邮件过期。

引起邮件重新路由或延迟的配置更改

下表汇总了在邮件传递阶段检测到特定配置更改,并且重新路由邮件或延迟传递时,采取的路由操作。

引起邮件重新路由或延迟的配置更改

路由方案 配置更改与路由操作

将邮件路由到在本地服务器上配置的 DNS 连接器。

 

配置更改 路由操作

已删除连接器。

重新提交队列。

将连接器更改为智能主机连接器。

重新提交队列。

修改连接器,以从源服务器列表删除本地服务器。

重新提交队列。

发生致命的 DNS MX 解析故障。

发送 NDR。

发生非致命的 DNS MX 解析故障。

在邮件到期之前重新尝试队列。

已禁用连接器。

重新提交队列。

将邮件路由到在本地服务器上配置的智能主机连接器。

 

配置更改 路由操作

已删除连接器。

重新提交队列。

修改连接器,以从源服务器列表删除本地服务器。

重新提交队列。

将连接器更改为 DNS 连接器。

重新提交队列。

修改连接的智能主机列表。

在邮件传递阶段自动检测并使用已更新的智能主机列表。

发生任何 DNS MX 解析故障。

在邮件到期之前重新尝试队列。

已禁用连接器。

重新提交队列。

SMTP 服务器脱机或目标未运行 SMTP 服务器。

在邮件到期之前重新尝试队列。

将邮件路由到本地 Active Directory 站点中的源集线器传输服务器或边缘传输服务器的连接器。

 

配置更改 路由操作

已删除连接器。

重新提交队列。

修改连接器的源服务器列表,以在本地 Active Directory 站点中删除或添加集线器传输或边缘传输服务器。

在邮件传递阶段自动检测并使用对本地站点中的源服务器的更改。

修改连接器的源服务器列表,以在 Active Directory 站点中删除所有集线器传输或边缘传输服务器。

重新提交队列。

邮件路由到本地 Active Directory 站点中的通讯组的展开服务器。

 

配置更改 路由操作

不再为集线器传输服务器角色配置服务器。

重新提交队列。

将邮件路由到本地 Active Directory 站点中的传输服务器。

 

配置更改 路由操作

服务器脱机或 Microsoft Exchange 传输服务未运行。

在一段时间间隔后重新提交队列。

将邮件路由到远程 Active Directory 站点。

 

配置更改 路由操作

删除远程 Active Directory 站点。

重新提交队列。

已删除到远程 Active Directory 站点的链接。因此无法从本地站点到达此站点。

重新提交队列。

远程 Active Directory 站点中的集线器传输服务器列表发生更改。

在邮件传递阶段自动检测和使用更改。

删除远程 Active Directory 站点中的所有集线器传输服务器。

重新提交队列。

沿目标 Active Directory 站点的路由路径引入集线器站点。

在邮件传递阶段自动检测和使用更改,以便将邮件中继到集线器站点。

远程 Active Directory 站点中的所有集线器传输服务器均脱机。

在一段时间间隔后重新提交队列。

远程站点是延迟扇出点,并且站点中的所有集线器传输服务器均脱机。

在一段时间间隔后重新提交队列。

邮件路由到远程路由组中的一个 Exchange 2003 服务器。

 

配置更改 路由操作

已删除连接器。

重新提交队列。

将连接器的源集线器传输服务器列表更改为从列表中删除本地服务器。

重新提交队列。

通过在远程路由组中删除或添加桥头服务器,更改了连接器的目标桥头服务器列表。

在邮件传递阶段自动检测和使用更改。

远程路由组中的所有 Exchange 2003 桥头服务器均脱机。

在邮件到期之前重新尝试队列。

邮件路由到一个目标,并且存在配置更改,但是目标仍然可以到达。

 

配置更改 路由操作

路由路径成为低优先选择,因为出现了一条更低开销或更近距离或同时满足这两个条件的新路由路径。

在邮件传递阶段自动检测和使用更改。

删除邮件的路由路径,因为沿路径增加了最大邮件大小限制。

在邮件传递阶段自动检测和使用更改。

降低了开销的以前禁用的路由路径被列入考虑范围,因为启用了连接器,将其放回范围内,或它没有邮件大小限制。

在邮件传递阶段自动检测和使用更改。

连接器地址空间发生更改。

在邮件传递阶段自动检测和使用更改。

对连接器进行更改,以将本地集线器传输或边缘传输服务器添加到源服务器列表中。

在邮件传递阶段自动检测和使用更改。

将邮件中继到远程 Active Directory 站点中的邮箱服务器,而将驻留目标邮箱数据库的邮箱服务器移动到一个不同的站点。

在邮件传递阶段自动检测和使用更改。

当通讯组展开服务器不再是一个展开服务器时,会将邮件中继到一个通讯组展开服务器。(修改通讯组的 HomeMTA 属性。)

在邮件传递阶段自动检测和使用更改。

使用 MAPI 传递将邮件路由到邮箱服务器。

 

配置更改 路由操作

邮箱移动到一个不同的邮箱服务器。

存储驱动程序检测到更改并重新提交邮件。

邮箱服务器脱机。

在一段时间间隔后重试并重新提交队列。

通过使用非 SMTP 网关将邮件路由到在本地服务器上配置的非 SMTP 连接器。

 

配置更改 路由操作

已删除外部连接器。

重新提交队列。

修改外部连接器,以从源服务器列表删除本地服务器。

重新提交队列。

已禁用连接器。

重新提交队列。

未找到投递目录。

在邮件到期之前重新尝试队列。

“无法到达”队列

“无法到达”队列包含无法路由到目标地址的邮件。通常,电子邮件地址的拼写错误或修改了用于传递的路由路径的配置更改,均会导致无法到达目标地址。无论目标地址是什么,无法到达收件人的所有邮件均驻留在此队列中。

将邮件放入“无法到达”队列的决定在分类的路由阶段作出。如果在路由阶段,无法为邮件计算出路由路径,则邮件会被发送到“无法到达”队列。“无法到达”队列中的邮件在处理了配置更改后被重新路由。对于每个 Exchange 2010 传输服务器,只有一个“无法到达”队列。

在分类期间,当符合以下条件时,邮件被放入“无法到达”队列中:

  • 收件人是一个有效的 Active Directory 收件人对象。但是,无法为该收件人计算出路由路径。

  • 收件人是一个外部 SMTP 地址,无法找到与地址空间匹配的连接器。分类程序的路由组件也可能忽略匹配的连接器,因为其被禁用或配置不正确。

  • 收件人是一个通讯组。通讯组的展开服务器无效,或未安装集线器传输服务器角色。

  • 收件人是邮件的 SMTP 地址收件人,此邮件由链接到发送连接器的接收连接器接收到,因为以某种方式禁用或错误地配置了它,分类程序的路由组件会忽略此发送连接器。

在以下情况下,不会将邮件放入“无法到达”队列,而是发送 NDR:

  • 无法为收件人计算路由路径,因为约束条件(例如邮件大小限制)会阻止通过分类程序计算出的单一、确定的路线传递邮件。

  • 收件人是非 SMTP 地址,并且找不到匹配的连接器。或者匹配的连接器被禁用或配置不正确。

  • 由于以某种方式禁用或错误地配置了发送连接器,分类程序的路由组件会忽略发送连接器,由链接到该发送连接器的接收连接器接收到的收件人是非 SMTP 地址收件人。

当路由表由于配置更改而重新建立时,“无法到达”队列中的邮件会被重新提交给分类程序。将旧路由表和新路由表进行比较。只有在旧路由表和新路由表不相同时,才重新提交“无法到达”队列。

会将邮件放入“无法到达”队列中的情况

本节介绍会将邮件放入“无法到达”队列中的一些情况。

  • Exchange 2010 组织和 Exchange 2003 组织之间的路由组连接器不存在
    Exchange 2010 路由组和 Exchange 2003 路由组之间的路由组连接器未配置,或 Exchange 2010 路由组和 Exchange 2003 路由组之间的最后一个路由组连接器已删除。不存在向 Exchange 2003 收件人提供路由路径的路由组连接器。要解决此问题,首先验证路由组连接器是否丢失。如果已丢失,则可以创建路由组连接器。有关详细信息,请参阅创建从 Exchange 2010 到 Exchange 2003 的其他路由组连接器。如果路由组连接器确实存在,则邮件由于某种其他原因而存在于“无法到达”队列中。检查路由组连接器的配置。
  • 目标 Active Directory 站点没有集线器传输服务器
    目标 Active Directory 站点没有集线器传输服务器。在此情况下,到此站点中的收件人的邮件发送到“无法到达”队列。为了解决此问题,请在 Active Directory 站点中部署集线器传输服务器。有关详细信息,请参阅集线器传输服务器角色概述
  • 两个 Active Directory 站点之间不存在 Active Directory 站点链接
    已删除 Active Directory 站点链接,因此断开的 Active Directory 站点包含 Exchange 2010 服务器。要解决此问题,请使用 Active Directory 站点和服务,创建一个 Active Directory 站点链接。
  • 其他问题
    当邮件被放入“无法到达”队列中时,最后一个错误邮件将指明邮件被放入“无法到达”队列中的原因。如果出于不同的原因,将同一邮件的多个收件人路由到“无法到达”队列,则每个收件人的最后一个错误指明各自的原因。在路由表计算期间发现不一致性时,事件将被记录到 Windows 事件查看器的应用程序日志中。最后一个错误邮件和这些事件可以帮助您确定配置错误,并进行更正,以便成功地路由“无法到达”队列中的邮件。

    您也可以手动强制重新提交队列中邮件。有关详细信息,请参阅重新提交队列中的邮件

 © 2010 Microsoft Corporation。保留所有权利。