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

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2007-08-14

本主题说明由于以下原因,将未发送的邮件放入到“无法到达”队列中的 Microsoft Exchange Server 2007 邮件路由情况:

  • 路由路径无法确定。

  • 邮件被重新路由。

使用队列查看器跟踪邮件流或监视传输邮件队列,有助于了解在什么情况下将邮件放入“无法到达”队列或对其进行重新路由。当重新路由邮件时,邮件被重新提交到提交队列,以确定当前开销最低的路由路径。分类程序可以确定路由路径。

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

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

有关如何计算开销最低的路由路径的更多信息,请参阅了解基于 Active Directory 站点的路由。有关分类程序如何工作的详细信息,请参阅传输体系结构

Exchange 2007 传输服务器检测可能修改邮件路由方式的配置更改。有关如何使用基于 Active Directory 的站点路由,在 Exchange 2007 组织中路由邮件的详细信息,请参阅了解基于 Active Directory 站点的路由。有关如何使用队列查看器和其他工具解决邮件流问题的详细信息,请参阅以下主题:

会产生重新路由的情况

远程传递队列是邮件重新路由的重点。本地传递是指将邮件发送到与执行分类所在的集线器传输服务器处于相同 Active Directory 目录服务站点中的收件人邮箱。远程传递是指将邮件传递到 Exchange 组织中的收件人和外部收件人。远程传递包括路由到远程 Active Directory 站点、旧版路由组和远程域。配置更改能以多种方式影响远程传递。

分类程序的路由组件在增强域名系统 (DNS) 解析期间会尝试检测是否必须重新路由队列中的邮件。增强 DNS 是 Microsoft Exchange 传输服务的一个组件。在增强 DNS 解析期间,将下一个跃点选择解析为目标服务器名称列表。下一个跃点是在分类期间标记为 NextHopSolutionKey 属性的一个属性。邮件分类程序的路由组件会尝试检测要求重新提交队列中邮件的任何配置更改。

存储驱动程序是将入站邮件传递到 Exchange 数据库的集线器传输服务器组件。如果符合下列条件之一,存储驱动程序将重新提交邮件进行重新路由:

  • 邮件位于 MAPI 传递队列中,并且已检测到下一个跃点。但是邮件尚未传递。

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

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

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

多种配置更改会影响邮件路由。关于 Microsoft Exchange 传输服务如何处理这些更改,以及这些更改如何影响邮件传递,本节后面会有解释。以下汇总列出了配置更改的类型:

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

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

  • 优先级较低的路由路径   当配置更改沿先前计算出的路由路径产生时,如果路由路径是可以访问的,已经路由的邮件将会被传递。但是新的邮件会通过已更新的配置更改进行重新路由。

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

  • 特殊情况   在某些情况下,当为 DNS 连接器或智能主机连接器进行的 DNS MX 解析发生故障时,会引起配置更改。

关于影响邮件路由的特定配置更改的完整列表,请参阅本主题后面的引起邮件重新路由和延迟的配置更改表。

无效的下一个跃点

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

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

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

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

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

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

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

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

Active Directory 站点中的 SMTP 中继

Active Directory 站点中的简单邮件传输协议 (SMTP) 邮件中继在以下情况下产生:

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

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

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

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

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

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

到远程 Active Directory 站点的 SMTP 中继

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

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

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

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

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

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

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

到 Exchange 2003 Server 的 SMTP 中继

在将邮件传递到 Exchange 2003 服务器时,Exchange 2007 集线器传输服务器通过路由组连接器将邮件中继到 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 或 Microsoft Exchange 2000 Server 桥头服务器。

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

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

note注意:
从邮件传递队列到提交队列的自动重新提交仅对非连接器队列发生。连接器队列保持重试模式,直到修正了问题,或邮件过期并发送了未送达报告 (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 2007 传输服务器,只有一个“无法到达”队列。

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

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

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

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

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

在以下情况下,邮件不会被放入“无法到达”队列中。转而发送 NDR。

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

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

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

重新路由邮件的决定在分类后,邮件传递阶段产生。将邮件放入“无法到达”队列的决定在分类的路由阶段作出。如果配置更改使确定的路由路径失效,可能会将重新路由的邮件放入“无法到达”队列。可以在队列查看器中看到带有“无法到达”传递类型标记的“无法到达”队列。有关如何解决“无法到达”队列和其他邮件流问题的详细信息,请参阅下列主题:

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

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

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

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

    管理员也可以手动实现队列中邮件的重新提交。将 Retry-Queue cmdlet 与 Resubmit 参数一起使用,可以实现将队列中的邮件手动重新提交到分类程序。有关详细信息,请参阅如何重新提交队列中的邮件

详细信息

有关详细信息,请参阅下列主题: