故障排除策略和提示

 

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

此部分包含用于排除未送达报告 (NDR) 故障的策略和提示。使用以下步骤可以确定 NDR 的原因:

  1. 使用 NDR 的状态代码来确定其可能的原因。
  2. 提高事件日志记录级别以捕获所有事件。
  3. 使用 Regtrace 来收集信息。

确定 NDR 的可能原因

下表列出了最常见的 NDR 状态代码、相应的应用程序事件日志条目、错误状况、潜在原因以及故障排除建议。

NDR 状态代码和相应的错误状况

NDR 状态代码 事件日志消息 ID 事件日志消息严重度 事件日志消息文本 可能的原因 故障排除

4.3.1

3001

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

出现了内存不足错误。此问题可能是由于资源问题(如磁盘已满)而引起的。

导致此错误的另一个可能原因是,传输队列位于 FAT 分区上,而服务已达到 Windows 对 IIS 打开的并发文件句柄数所施加的限制。

可能出现了内存不足错误,而不是磁盘已满错误。

确保 Exchange 服务器具有足够的磁盘存储。如果可能,应将邮件队列移动到 NTFS 磁盘分区。

4.3.2

3002

信息性

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

在 Exchange 2000 Service Pack (SP) 1 和更高版本中可用。此 NDR 是在队列冻结后生成的。

撤消冻结该队列。

4.4.1

3003

警告

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

目标服务器未响应。暂时性的网络状况可能导致此错误。Exchange 服务器自动再次尝试连接到服务器并传递邮件。如果在尝试多次后传递仍失败,则会生成具有永久性失败代码的 NDR。

监视此情形。这可能是暂时性的问题,可以自行恢复。

4.4.2

3304

警告

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

服务器之间的连接中断。暂时性的网络状况或出现问题的服务器可能导致此错误。发送服务器将在特定的一段时间内重试传递邮件,然后生成进一步的状态报告。

在服务器重试传递时监视该情况。这可能是暂时性的问题,可以自行恢复。

4.4.6

3005

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

超出了邮件的最大跃点数。

如果未处于同一 Exchange 组织的发送服务器和接收服务器之间存在循环,则也可能导致此未送达报告。在这种情况下,邮件来回传递,直到超过了最大跃点计数。

电子邮件系统中的配置错误也可能导致邮件在两个服务器之间来回传递或在两个收件人之间来回转发。

最大跃点计数是每个虚拟服务器上的一个属性集,可以手动覆盖它。

默认的最大跃点计数为 15。

还应检查可能导致服务器之间出现路由循环的情形。

4.4.7

3006

警告

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

队列中的邮件已过期。发送方服务器尝试中继或传递邮件,但是由于邮件在此过程中已过期,因此操作未能完成。此邮件还可能表示已达到远程服务器上的邮件头限制,或者其他某些协议在与远程服务器通信的过程中超时。

此邮件通常意味着接收方服务器出现问题。应检查收件人地址的有效性,并确定是否正确配置了接收方服务器接收邮件。

可能必须减少与此错误有关的主机的邮件头中的收件人数。如果重新发送邮件,它将被再次放入该队列中。如果接收方服务器可用,将传递邮件。

4.4.9

3007

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

这表明出现了暂时性的路由错误或路由配置无效。可能的原因包括:

  • 第一种情形:某人将 SMTP 连接器配置为使用 DNS(而不是智能主机),并且向该连接器添加了非 SMTP 地址空间(如 X.400 地址)。
  • 第二种情形:某人创建了一个路由组,并且该路由组中的收件人被假定接收邮件。使用 DNS 的路由组连接器被用来桥接路由组,之后此管理组或路由组被删除了。因此,发送到该路由组的所有邮件都以 MSGWIA.X500 格式(用于非 SMTP 地址的地址封装)进行发送;DNS 无法识别该格式。在 Exchange Server 2003 之前,发送到不再存在的路由组的邮件将停留在链路中。

路由检测到这些情形,并且 Exchange 返回 DSN。

  • 对于第一种情形,补救措施是:将 SMTP 连接器配置为使用智能主机(而不是 DNS)来解析非 SMTP 地址空间。
  • 对于第二种情形,补救措施是:确保将已删除的管理组或路由组中的所有用户都移到了有效的管理组或路由组中。

5.0.0

3008

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

注意   在 Exchange 2000 SP1 之前的版本中,5.0.0. 代码下会出现以下代码:

  • 4.3.2
  • 5.4.0
  • 5.4.4
  • 5.5.0

分类程序失败;这是永久性的失败。可能的原因包括:

  • 没有与给定的地址空间匹配的路由;例如,配置了 SMTP 连接器,但该地址不匹配。
  • DNS 返回了在域中找不到的权威主机。
  • 路由组未定义连接器;来自某个路由组中的某台服务器的邮件没有到达另一个路由组的路由。
  • 发生了 SMTP 错误。

在一个或多个 SMTP 连接器上,将星号 (*) 值作为 SMTP 地址空间添加;确认 DNS 工作;确保路由组具有将它们连接起来的连接器。

5.1.0

3009

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

此 NDR 是由一般性的分类程序失败(无效地址错误)而引起的。在 Active Directory 中找不到电子邮件地址或另一个属性。没有 targetAddress 属性的联系人条目可能导致此问题。另一个可能的原因是分类程序无法确定用户的 homeMDB 属性。homeMDB 属性与用户邮箱所在的 Exchange 服务器对应。

此 NDR 的另一个常见原因是:您使用 Outlook 将电子邮件另存为文件,然后某人脱机打开了邮件,并答复了该邮件。当 Outlook 传递邮件时该邮件属性仅保留 legacyExchangeDN 属性,因此查找可能失败。

或者是收件人地址的格式不正确,或者是分类程序无法正确地解析收件人。纠正此错误的第一步是检查收件人地址,然后重新发送邮件。

5.1.1

3028

信息性

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

发送邮件的组织中不存在该电子邮件帐户。当用户移动到站点内的新位置时,可能发生这种情况。例如,如果以前的 Administrative_Group_1 用户移到了 Administrative_Group_2,然后答复原来的邮件,或者不重新创建 Outlook 配置文件,在这种情况下,将使用原来的管理组样式的 LegacyDN 地址,并且发送此 NDR。同样,发送邮件以废弃个人通讯簿条目也会导致此错误。

此外,如果在 SMTP 联系人中配置了无效的 SMTP 字符(按照 RFC 821),则分类程序将拒绝传递,并显示此诊断代码。

或者是收件人地址的格式不正确,或者是分类程序无法正确地解析收件人。纠正此错误的第一步是检查收件人地址,然后重新发送邮件。

5.1.2

3031

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

收件人具有与目标不匹配的非 SMTP 地址。该地址似乎不是本地地址,而且没有使用包含收件人地址的地址空间配置的连接器。

请验证输入的收件人地址是否正确。如果收件人地址在您明确要向其传递邮件的非 SMTP 电子邮件系统中,则您需要向拓扑结构中添加相应类型的连接器,并将其配置为向收件人的电子邮件系统提供服务。

5.1.3

3010

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

该消息表明地址语法存在问题;这意味着邮件中的收件人地址可能不正确。可能的原因包括

1) 没有为联系人的 targetAddress 属性配置地址类型。

2) Exchange 5.5 允许违反 RFC821(SMTP 标准)的 SMTP 收件人策略。例如,Exchange 5.5 站点和组织包含无效的 RFC821 域名。

混合模式环境(Exchange 5.5 和 Exchange 2000 服务器)可能会导致目标地址无效。

或者是收件人地址的格式不正确,或者是分类程序无法正确地解析收件人。解决此错误的第一步是检查收件人地址,然后重新发送邮件。

此外,检查 SMTP 收件人策略并确保要接受其邮件的每个邮件域都正确显示。

5.1.4

3029

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

两个对象具有相同的(代理)地址,并且邮件发送到该地址。如果收件人在远程服务器上不存在,则也会发生此问题。

检查收件人地址以确保两个对象不共享地址。尝试重新发送邮件。

5.1.6

3011

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

导致此 NDR 的一个可能原因是 homeMDB(用户的主邮箱存储)或 msExchHomeServerName(用户邮箱所在的服务器)等用户目录属性不存在或者被破坏。

检查用户目录属性的完整性,然后重新运行收件人更新服务,以确保在 Active Directory(和元数据库)中已更新传输所必需的属性的有效性。

5.1.7

3012

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

发件人的 SMTP 地址(目录服务中的 mail 属性)不正确或者空缺。分类程序无法传递没有有效的 mail 属性的邮件项。

检查发件人的目录结构,并确定是否存在 mail 属性。

5.2.1

3013

警告

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

由于本地邮件过大或收件人的邮箱未启用邮件,该邮件被拒绝。收件人缺少主帐户安全 ID (SID) 号也会导致此错误。

检查访问权限以及邮件大小。检查 Active Directory 中是否有与收件人对应的 SID。检查以确保收件人邮箱已启用邮件。

5.2.2

3000

信息性

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

当收件人的邮箱超出其存储限制时,会生成此 NDR。

在 Windows 2000 或 Windows 2003 中,当放置目录的存储大小超出 SMTP 虚拟服务器的磁盘配额时,会生成 DSN。

配额大小是最大邮件大小的 11 倍或 22 MB(如果没有最大邮件大小)。

如果放置目录的可用存储大小不超过配额的一个最大邮件大小,或者如果未定义最大邮件大小时可用存储大小为 2MB,则系统会假定该邮件导致存储大小超过配额,因此将生成该 DSN。

检查邮箱存储或队列存储配额限制。

5.2.3

3014

警告

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

邮件过大,并且超出了本地配额。例如,远程 Exchange 用户可能受到传入邮件最大大小的限制。

重新发送不带附件的邮件,或者将服务器或客户端限制设置为一个更大的邮件大小值。

5.2.4

3032

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

收件人是一个配置不正确的动态通讯组列表。该动态通讯组列表的筛选器字符串或基位置 DN 无效。

将分类程序事件日志记录级别至少设置为最低级别,然后向此动态通讯录列表再发送一封邮件。检查应用程序事件日志中的事件 6025 或事件 6026,其中详细叙述了该动态通讯组列表对象的哪个属性配置不正确。

5.3.0

3015

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

Exchange 错误地尝试将邮件传递到不正确的 MTA 路由。

Exchange 2003 可以在没有邮件传输代理 (MTA) 的情况下运行。如果邮件被错误发送到 MTA,则 Exchange 向发件人返回此 DSN。仅当禁用了 MTA 服务并使用特定的注册表设置禁用了 MTA/StoreDriver 时,才会出现这种情况。默认配置将错误路由的邮件搁置在 MTA 队列中。

检查路由拓扑。使用 WinRoute 工具确保在服务器与路由组之间正确复制了路由。

5.3.3

3016

警告

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

当 Exchange 远程服务器达到了存放邮件的磁盘存储容量时,可能会发送此 NDR 作为响应。当发送方服务器使用 ESMTP BDAT 命令发送邮件时,通常会出现此错误。此错误还表明可能存在 SMTP 协议错误。

确保远程服务器具有足够的存储容量来存放邮件。检查 SMTP 日志。

5.3.5

3017

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

检测到了邮件循环。这意味着服务器被配置为将邮件重新传递给它自身。如果在 Exchange 服务器上配置了多个 SMTP 虚拟服务器,应确保它们使用唯一的传入端口。此外,要避免在本地 SMTP 虚拟服务器之间出现循环,应确保传出 SMTP 端口配置是有效的。

检查虚拟服务器的连接器配置是否会造成循环,并确保通过唯一的传入端口定义了每个虚拟服务器。如果存在多个虚拟服务器,应确保没有任何服务器被设置为“所有未分配”。

5.4.0

3018

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

可能的原因包括:

  • 在 DNS 中找不到权威主机。
  • 智能主机条目不正确。
  • HOSTS 文件中存在完全限定域名(在 Windows 2000 SP3 中已解决)。
  • 出现了 DNS 故障,或者配置为智能主机的 IP 地址无效。
  • SMTP 虚拟服务器没有有效的 FQDN,或者未在您的 SMTP 虚拟服务器中执行查找。
  • 联系人的 SMTP 域未解析为任何 SMTP 地址空间。

使用 DNS 解析器工具 (Dnsdiag.exe) 或 Nslookup 检查 DNS 配置。确认 IP 地址采用的是 IPv4 文字格式。确认存在与所提到的服务器/计算机名对应的 DNS 条目。如果依赖 HOSTS 文件中的 FQDN,应在 Exchange 系统管理器中使用有效的 IP 地址或正确的名称更新该条目。

5.4.4

3019

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

在 Exchange 2000 SP1 或更高版本中出现。

如果不存在邮件传递路由,或者分类程序无法确定下一跃点目标,将产生此 NDR。

设置了路由组拓扑,但是路由组之间不存在路由组连接器。

在路由组之间添加或配置路由组连接器。

5.4.6

3020

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

检测到分类程序转发循环。targetAddress 属性是在已启用邮箱的用户上设置的。

当某人在一个组织单位中创建了一个联系人,然后使用定制工具在另一个组织单位创建具有同一电子邮件地址的用户,则会出现这一常见的主持配置问题。

如果“联系人 A”具有指向“联系人 B”的备用收件人,而联系人 B 又具有指向“联系人 A”的备用收件人,则会出现这种情况。检查联系人的备用收件人。检查并删除已启用邮箱的用户的 targetAddress 属性。对于主持(一个组织单位中的一个公司中的一个用户向另一个组织单位中的另一个公司中的用户发送邮件),应配置下面的两个相关对象:用户:SMTP 代理:user@contoso.com 联系人:目标地址:user@contoso.com;SMTP 代理:contact@fourthcoffee.com,其中 fourthcoffee.com 是第二个公司的名称。

5.4.8

3021

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

在 Exchange 2000 SP1 或更高版本中出现。

此邮件指出发生了邮件循环,这可能是由于某个收件人策略中包含与组织中的某个 Exchange 服务器的 FQDN 匹配的本地域。当分类程序正在处理的邮件是发往与 Exchange 服务器的 FQDN 匹配的域时,会返回此 NDR。

检查收件人策略。如果收件人策略中包含某个 Exchange 服务器的 FQDN,必须删除该条目。收件人策略不应包含服务器的 FQDN,而应仅包含邮件域 -- 例如,应输入 contoso.com,而不是 server1.contoso.com。

5.5.0

3022

警告

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

一般性协议错误或 SMTP 错误会导致此 NDR。远程 SMTP 服务器用 500 级错误来响应发送方服务器的 EHLO(用于表明自己的身份)。然后,发送方系统将终止连接,并传递指出远程 SMTP 服务器无法处理协议的 NDR。例如,如果 Microsoft Hotmail® 电子邮件帐户不再有效,将出现 550 SMTP 错误。

查看 SMTP 日志或 Netmon 跟踪可确定远程 SMTP 服务器为何拒绝协议请求。

5.5.2

3023

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

当无序地发送 SMTP 命令时,会发生一般性的 SMTP 错误。例如,服务器在用 EHLO 命令表明自己的身份之前,先尝试发送 AUTH (authorization) 命令。

在系统磁盘已满时,也可能会发生此错误。

查看 SMTP 日志或 Netmon 跟踪,并确保存在足够的磁盘存储和虚拟内存可供 SMTP 运行时使用。

5.5.3

3024

信息性

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

邮件的收件人过多可能导致此 NDR。

收件人限制是可配置的设置。要解决此问题,应增加收件人限额,或者将邮件分成多个邮件以便不超过服务器的限额。

note注意:
SMTP 邮件的默认收件人限额是 5,000。若要更改此限额,请启动 Exchange 系统管理器,展开“全局设置”,用鼠标右键单击“邮件传递”,再单击“属性”,然后使用“默认设置”选项卡。此设置还可以是 Active Directory 中针对每个用户的设置。

5.5.4

3025

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

邮件包含无效发件人或者收件人地址格式不正确。

一个可能的原因是收件人地址格式可能包含不符合 Internet 标准的字符。

检查收件人地址中是否包含非标准字符。

5.5.6

3026

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

此消息表明可能存在协议错误。

检查 X-LINK2STATE 协议和事件日志查找可能的故障。

5.7.1

3027

信息性

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

可能的原因包括:

  • 拒绝常规访问,以及拒绝发件人访问 -- 邮件发件人没有完成传递所需的权限。
  • 试图通过另一台 SMTP 服务器中继邮件,而该服务器不允许您中继邮件。
  • 收件人可能启用了邮箱传递限制。例如,如果收件人的邮箱传递限制设置为仅接收来自通讯组列表的邮件,则来自非成员的发件人的邮件将被拒绝,并产生此错误。
  • Exchange 2003 中的新问题:匿名用户试图将邮件发送到仅从已通过身份验证的 SMTP 会话接受邮件的收件人或通讯组列表。

检查联系人的系统特权和属性,并尝试再次发送该邮件。此外,要解决其他潜在问题,应确保运行了 Exchange 2000 SP1 或更高版本。

5.7.3

3033

错误

为收件人 %2 生成了状态代码为 %1 的未送达报告(消息 ID 为 %3)。

发件人禁止重新指定给备用收件人。

 

使用事件日志

如果仍然找不到邮件生成 NDR 的原因,接下来则应该提高诊断事件日志记录级别。然后,尝试重现该 NDR,并检查应用程序事件日志。使用上表中的代码,日志条目可能会提供有关为什么生成 NDR 的信息。Windows 分类程序具有有限的事件日志记录功能,但是 Exchange 分类程序具有广泛的事件日志记录功能。

为了找到产生 NDR 的原因,应在邮件分类程序中将诊断日志记录级别设置为字段工程级 7。当启用该级别的日志记录时,会在事件查看器中对产生 NDR 的邮件生成以下信息性事件消息:

Messageid=9000

Facility=Interface

Severity=Informational

SymbolicName=PHATCAT_NDR_REASON

The function of <function name> failed for reason <cause of failure> when processing recipient <recipient name> of type <recipient type> A delivery status notification has been generated

使用 Regtrace

Regtrace 是在 Exchange 服务器上提供的;它是一个用于诊断和排除 NDR 故障的有用工具。

有关详细说明,请参阅如何启用 regtrace

跟踪文件

在 Regtrace 的“Output”选项卡上指定的位置可以找到跟踪文件。该文件的默认位置为 C:\Trace.atf。

跟踪文件是二进制编码文件,它包含关于正在跟踪的传输和路由组件的调试级信息。为此,Microsoft 产品支持服务 (PSS) 要求客户发送跟踪文件以便进行内部分析。可能必须使用文件压缩软件将文件打包,以便可以通过 FTP 服务器、Microsoft File Exchange (MSFE) 或 Premier Service Desk 将其传递到 PSS。有关上述任何传递方法的详细信息,请咨询 PSS 代表。