ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 诊断并解决 IBMLotusDomino8 邮件路由问题

诊断并解决 IBMLotusDomino8 邮件路由问题

原创 Linux操作系统 作者:genusBIT 时间:2009-07-06 13:48:27 0 删除 编辑

转自:developerworks

Seem a Janjirkar, 软件工程师, IBM
Ranjit Rai, 软件工程师 , IBM

简介

IBM Lotus Domino 是一个广泛使用的消息系统,根据客户的报告,它最常见的问题是邮件路由问题。大部分情况下,问题都很简单并且可以自行解决(例如,网络连接和 DNS 不可用);但是,在某些场景下,很难找出问题的根源。

在诊断这种问题时,技术支持工程师经常要求客户启用某个调试工具。因此,您不禁会想:使用调试参数捕捉什么信息? IBM 如何分析调试结果以识别问题?

在这份白皮书中,我们展示如何诊断以下问题,解释诊断邮件路由问题的各个步骤:

  • 内部邮件路由无效。
  • 内部邮件路由正常,但邮件不能路由到 Internet 。
  • 入站 SMTP 出现问题。
  • 通过 POP3 或 IMAP 接收邮件出现问题。
  • Internet 地址的语法错误;当 Internet 用户尝试回复您的邮件时,他们得到一个发送失败报告(DFR)。
  • Notes 邮件文件收到重复的消息。
  • 邮件发送给错误的接收者。

通过学习这些技术,客户应该能够亲自诊断并解决以上问题。

IBM Lotus Notes® 邮件路由概述

我们先看一下 Lotus Domino 邮件系统路由邮件的基本步骤:

  1. 使用邮件客户端创建一条邮件消息,并将其发送给接收者。
  2. 您发送消息,而邮件客户端将使用以下选项之一:
    • 使用 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)。
  3. 路由器在 MAIL.BOX 中找到这条消息,并确定消息的接收者。路由器检查路由表,以计算将消息发送给接收者的下一个步骤,并确定用于传输消息的适当协议 —— SMTP 或 Notes 路由(NRPC):
    • 对于 SMTP 路由,路由器将连接到目标服务器 —— 接收者的邮件服务器、中转主机、智能主机或接收者 Internet 域中的服务器之一 —— 然后传输消息。
    • 对于 Notes 路由(NRPC),路由器将消息移动到服务器上的 MAIL.BOX 数据库,这是通向接收者邮件服务器的下一站。该服务器上的路由器又将该消息发送到下一站,直至发送到接收者服务器上的 MAIL.BOX 数据库。
  4. 接收者服务器上的路由器找到该消息(在某个 Domino 服务器的 MAIL.BOX 中),并将其发送到接收者的邮件文件。
  5. 最后,您通过邮件客户端从邮件文件获取该消息。取决于邮件客户端的类型,可选择使用的协议包括:NRPC、IMAP、POP3 或 HTTP 。

    邮件路由的工作原理

    默认情况下,Lotus Domino 使用 NRPC(也称为 Lotus Notes 路由或 Notes 路由协议)在服务器之间传输邮件。 Notes 路由使用 Domino Directory 中的信息确定将邮件发送到哪里,并将邮件从发送者的邮件服务器移动到接收者的邮件服务器。

    发送者的服务器上的路由器决定接收消息的下一个服务器,即通向消息目的地的路径的下一站。每个服务器使用自己的路由表计算通向目标服务器的路径的下一站。当消息到达目标服务器时,其上的路由器就将它投递到接收者的邮件文件。

    Notes 路由如何传输消息

    当您使用 Notes 地址给接收者发送邮件时(例如 Jane Doe/Acme),路由器将从 MAIL.
    BOX 选择一条消息,以确定邮件的路径。路由器首先在 Domino Directory 中查找接收者 Jane Doe/Acme 的 Person 文档。

    Person 文档包含 Jane Doe 的邮件服务器的名称。路由器使用从该信息获得的网络信息(即路由表)确定消息的下一站。路由器如何分发消息取决于接收者的邮件文件的位置,其位置可以是:

    • 同一个服务器,
    • 在相同的 Notes 命名网络(NNN)中的不同服务器,
    • 在本地 Domino 域中的不同 Notes 命名网络中的服务器,或
    • 外部 Domino 域中的服务器。

    将消息传输给同一服务器上的接收者

    如果路由器在检查接收者的 Person 文档之后,发现其邮件服务器与发送者服务器相同,它将把消息投递到接收者的邮件文件。

    在同一 NNN 中将消息传输给另一个服务器上的接收者

    如果发送者不在相同的邮件服务器上,路由器将检查 Domino Directory 以确定服务器是否在相同的 Domino 域中。如果在 Domino Directory 中找到目标服务器的 Server 文档,路由器将检查该文档以确定该服务器的网络信息。

    在 Ports、Notes Network Ports 和 Server 文档选项卡上,服务器被分配了一个或多个 NNN 。 NNN 是在特定 Domino 域中的一组服务器,它们共享一个通用的协议,并且由 LAN 或调制解调器连接起来。

    注意:在相同域中的服务器不一定在同一个 NNN 中,而共享同一个 NNN 的服务器一般都在同一个 Domino 域中。

    如果两个服务器共享一个 NNN,路由器立即将消息从发送者服务器上的 MAIL.BOX 文件路由到接收者服务器上的 MAIL.BOX 文件。然后,接收者服务器上的路由器将消息发送到接收者的邮件文件。因为邮件在 NNN 中是自动路由的,所以您不必创建其他连接或文档。

    将消息传输给同一个 Domino 域中的不同 NNN 的接收者

    如果发送者和接收者的邮件服务器在相同的 Domino 域中,但不共享同一个邮件服务器或 NNN,那么要使传输能够继续下去,必须在这两个网络之间建立某种连接。您可以使用以下方式之一在 NNN 之间建立一个连接:

    • 一个属于多个 NNN 的成员的 “桥接” 服务器
    • 一个 Connection 文档

    Connection 文档提供在 NNN 之间路由邮件的信息之后,源网络和目标网络就可以存在不同的 Domino 域中。该文档包含路由器查找目标网络所需的全部信息。

    SMTP 邮件路由概述

    默认情况下,Lotus Domino 使用 Notes 路由协议在服务器之间传输邮件,但您可以配置 Domino,让它使用 SMTP 路由邮件。

    使用 SMTP 路由的消息传输被执行为两个服务器之间的点对点交换。发送 SMTP 服务器直接联系接受 SMTP 服务器,并建立一个双向传输通道。通过 SMTP 发送消息需要:

    1. 发送服务器检查接收者的地址(格式为localpart_cnnew1@ domain),并查找域名系统(DNS)中的域。
    2. DNS 返回该域的 Mail Exchanger (MX) 记录,显示该域中通过 SMTP 接收邮件的服务器的 IP 地址。
    3. 发送服务器通过 TCP/IP 连接到目标服务器,并在端口 25 建立一个 SMTP 连接用于传输消息,传输完成之后关闭该连接。

    在 Domino 服务器上启用 SMTP

    Lotus Domino 支持借助 SMTP 监听器任务和 SMTP 路由器通过 SMTP 发送和接收邮件,您可以分别启用它们。

    SMTP 监听器任务处理入站 SMTP 连接,并通过这些连接将收到的消息发送到 MAIL.BOX 。它不处理这些消息的后续投递和传输。您可以在 Server 文档的 Basic 选项卡上配置 SMTP 监听器任务,让其接收邮件(见图 1)。


    图 1 . Server 文档上 Basics 选项卡
    图 1 . Server 文档上 Basics 选项卡

    SMTP 的路由器任务和处理 Notes 路由的任务是一样的。当 MAIL.BOX 中的消息需要传输到另一个服务器时,路由器将确定其目的地,以及是通过 Notes 路由还是 SMTP 发送它。

    SMTP 在默认情况下是禁用的。要配置 Domino 服务器让其使用 SMTP 发送邮件,您必须更改 Configuration Settings 文档上的 Router/SMTP 选项卡的 Basics(见图 2)。您可以将 Lotus Domino 配置为使用 SMTP 将邮件发送到目的地,不管是在本地
    Internet 域内部还是其外部。


    图 2. 将 Domino 服务器配置为使用 SMTP
    图 2. 将 Domino 服务器配置为使用 SMTP

    路由器如何决定什么时候使用 SMTP

    在同时支持 SMTP 和 Notes 路由的服务器上,路由器每次检测到 MAIL.BOX 中有新消息时,它就会选择用于传输消息的协议。

    路由器的决定基于消息的地址和格式,以及服务器是配置为在本地 Domino 域内部使用
    SMTP 发送消息,还是配置为在本地 Internet 域外部使用 SMTP 发送消息,或者同时配置为这两者。

    使用 SMTP 将邮件发送到本地域地址

    在本地 Domino 域中启用 SMTP 允许路由器在将邮件传输到相同 Domino 域中的另一个 Domino 服务器时把 SMTP 用作可选路由协议。

    当将服务器配置为在本地 Domino 域中使用 SMTP 发送消息时,您有以下选择:

    • SMTP 仅支持 MIME 消息。如果目的地是运行 SMTP 监听器的 Domino 服务器,并且存放在 MAIL.BOX 中的消息为 MIME 格式,那么路由器将使用 SMTP 发送它。

    采用 Notes 富文本格式的消息将通过 Notes 路由发送。

    • SMTP 支持所有消息。如果目的地是运行 SMTP 监听器的 Domino 服务器,那么在将消息传输到另一个 Domino SMTP 主机时,路由器通常使用 SMTP,而不管消息的当前格式是什么。

    如果存放在 MAIL.BOX 中的消息为 Notes 格式,那么路由器会将其转换成 MIME 格式再发送。

    当路由器在 MAIL.BOX 中选择一条消息时,它会读取消息的地址以确定接收者是否在本地域中。如果接收者是本地的,路由器就在 Domino Directory 的 ($Users) 视图中查找包含该地址的 Person 文档。

    如果允许在该域中使用 SMTP,并且消息的格式与该设置指定的格式一致,那么路由器将(1)使用 TCP/IP 连接到目标服务器,(2)建立一个 SMTP 连接,以及(3)传输消息。

    默认情况下,在本地 Domino 域中启用 SMTP 允许路由器使用 SMTP 将邮件传输到该域中的其他 Domino SMTP 主机。

    现在,您已经可以限制 SMTP 在本地域的使用,从而使只有在同一个 NNN 的服务器之间传输的消息能够使用 SMTP 。

    为此,在 Configuration Settings 文档的 Router/SMTP 选项卡的 Basics 上,将“ Servers within the local Domino domain are reachable via SMTP over TCPIP ”设置为“ Always ”(见图 3)。


    图 3. 限制 SMTP 在本地域的使用
    图 3. 限制 SMTP 在本地域的使用

    如果接收服务器正在运行 SMTP 监听器,配置为在本地 Domino 域中发送 SMTP 的服务器通常使用 SMTP 将 MIME 消息发送到同一个 NNN 中的目标服务器。对于 Notes 格式的消息,仅当服务器被配置为通过 SMTP 发送所有消息时,路由器才会通过 SMTP 发送它们。

    在本地 Internet 域外部通过 SMTP 发送消息

    将 Domino 设置为可以通过 SMTP 向外部 Internet 域发送消息允许服务器将出站Internet 邮件直接传输到接收域中的主机,或间接传输到 Internet 主机。

    如果 MAIL.BOX 中的消息拥有包含 @ 符号的接收地址,并且拥有不能在本地 Domino 域中解析的域部分(@ 符合右边的地址部分),那么路由器将把该消息的目标服务器标识为非本地的。

    非本地的地址可以是 RFC 831 Internet 地址(域部分包含一个点号,其形式为localpart@org.domain),或在另一个 Domino 域中的地址(包括外域,比如传呼机或传真网关)。

    为了确定一个 Internet 地址是否为本地地址,路由器将检查该地址的域部分,看它是否与任何在 Domino Directory 中的 Global Domain 文档中定义的本地 Internet 域相匹配。本地 Internet 域包含在 Local 主 Internet 域和 Global Domain 文档中的 Alternate Internet 域别名字段中列出的任何域。

    如果没有 Global Domain 文档,路由器将比较接收者地址中的域和服务器的主机名。例如,如果消息的接收地址为 jdoe@mailhost3.acme.com 并且路由器位于服务器 mailhub.acme.com 上,那么路由器就知道接收者在本地 Internet 域中。

    将 Domino 邮件系统连接到 Internet

    因为 Lotus Domino 使用基于 Internet 标准的 SMTP 路由协议路由邮件,所以很容易就可以将 Domino 系统配置为从外部 Internet 域接收和发送邮件。

    对于出站邮件,您可以使用网关路由架构(只有被指定的服务器才能使用 SMTP 将邮件路由到外部域),或将所有邮件服务器设置为使用 SMTP 将邮件路由到外部域。

    对于入站邮件,您需要决定如何将进入您的 Internet 域的邮件从防火墙路由到
    Domino 服务器。如何设置入站邮件取决于您的组织使用单个 Internet 域名还是多个 Internet 域名,以及服务器的分布方式。

    使用中转主机

    中转主机是连接到 Internet 并且转发或中转入站或出站 Internet 邮件的 SMTP 服务器或防火墙。中转主机还可以是映射到多个 MX 记录的 DNS 名。

    要将 Domino 配置为使用中转主机,您可以使用发送服务器上的 Configuration
    Settings 文档上的两个字段(见图 4)。一定要将中转主机的 DNS 或主机名添加到 “ Relay host for messages leaving the local Internet domain ”字段,并启用“ SMTP
    used when sending messages outside of the local Internet domain ”字段。


    图 4. 配置 Domino 以使用中转主机
    图 4. 配置 Domino 以使用中转主机

    使用 Notes 路由将出站 Internet 邮件传输到 SMTP 服务器

    在不使用 SMTP 路由邮件的内部 Domino 服务器上,Lotus Domino 使用 Notes 路由来将出站 Internet 消息传输到 Domino SMTP 服务器,后者随后直接或通过中转主机将该消息传输到 Internet 。

    要配置使用 Notes 路由将 Internet 邮件传输到 Domino SMTP 服务器的服务器,您必须使用 Foreign SMTP Domain 文档和 SMTP Connection 文档。

    常见问题和诊断技巧

    现在您可以了解 NRPC 和 SMTP 邮件路由是如何在 Lotus Domino 中工作的,接下来我们将讲解如何诊断和解决一些常见的问题。

    内部邮件路由无效

    如果邮件没有:

    • 从 MAIL.BOX 发送到邮件文件,请转到第 1 步。
    • 发送到另一个服务器的 MAIL.BOX,请转到第 2 步。

    1. 收集控制台日志或 Log.nsf 中的投递失败报告(DFR)以及所有相关的错误。如果投递失败显示(否则,转到第 3 步):

    1. 限额已满,将邮件文件降至限额范围内,或增加邮件文件的限额。 [Done]
    2. Mailbox 损坏,关闭服务器并重新创建 MAIL.BOX 。 [Done]
    3. “文件不存在”,请检查邮件文件。 [Done]
    4. “在地址簿中找不到用户”,可能新注册了用户,其 Person 文档可能尚未复制。如果已经复制了 Person 文档,可能是没有更新索引。对于这种情况,通过加载updall
      names.nsf – t “ $User ”
      命令更新 $User 视图的索引。如果老用户发生投递失败,可能是他们的 Person 文档已经损坏,那么需要删除该文档,并从备份复制一份。 [Done]
    5. 策略引起的任何拒绝。请检查 Configuration 文档中指定的限制。此外,还要检查是否在服务器的 Configuration 文档中指定了规则。 [Done]

    2. 检查 MAIL.BOX 中过期或被阻止的消息,并禁用杀毒软件看看能否解决问题。 [Done]

    3. 收集控制台日志或 Log.nsf 中的投递失败报告以及所有相关的错误。如果投递失败显示(否则,转到第 4 步):

    1. “没有找到服务器的路由器”,请检查服务器的 Connection 文档。 [Done]
    2. MAIL.BOX 损坏,关闭服务器并重新创建目标服务器的 MAIL.BOX 。 [Done]
    3. “服务器为未知 TCP/IP 主机”,请检查 DNS 服务器。 ping 服务器名,检查能否解析服务器名。 [Done]

    4. 在服务器控制台上发出命令 “ tell router show ”:

    1. 如果收到“服务器不响应”的错误,请检查服务器的连接。
    2. 如果连接没问题,请检查服务器是否正常运行。
    3. 如果服务器正常运行,请检查能否 Telnet 到服务器的 1352 端口。
    4. 如果不能 Telnet 到服务器的 1352 端口,该端口可能被防火墙阻止了。
    5. 如果输出显示“ Busy ”状态,检查一下能否通过其他方式将数据传输到目标服务器(复制或通过 FTP 传输小文件)。此外,尝试禁用杀毒软件看看能否解决邮件路由问题。

    内部邮件路由正常,但邮件不能路由到 Internet

    如果您收到:

    • 以对话框方式弹出的错误(在单击客户端上的 Send 按钮时),请转到第 1 步。
    • 投递失败报告,请转到第 2 步。
    • 没有失败,但 Internet 接收者没有收到消息,请转到第 3 步。

    1. 开始 Notes Client 问题诊断脚本:

    1. 检查客户机能否 ping 通服务器,如果不能,检查操作系统的网络设置,并转到“ b ”步骤。
    2. 检查是否能从 Notes 客户端访问服务器;如果不能,请检查服务器是否正在正常运行。(同时也要确保 1352 端口对服务器开放)。然后进入“ c ”步骤。
    3. 检查是否能够打开邮件文件;如果不能,请在 Lotus Support Web 站点 搜索错误消息。 [DONE]

    2. 搜索 Lotus Support Web 站点 动态地了解 DFR ;如果未能找到或仍然不能解决问题,请向 Technical Support 寻求帮助。 [DONE]

    3. 在 Domino 服务器上打开 MAIL.BOX 文件。如果您:

    • 看到消息旁边有一个红色的圆圈图标,请进入步骤 4 。
    • 看到消息旁边有一个红色的“!”,请进入步骤 5 。
    • 看到消息旁边没有任何图标,请进入步骤 6 。
    • 没有看到消息,请进入步骤 7 。

    4.处于 DEAD 状态的消息。如果不能向前或向后路由,那么它就处于 DEAD 状态。原始消息将不能到达接收者处。返回给发送者的投递失败消息同样失败。这常常出现在虚假的发送者地址中(SPAM)。 [DONE]

    5.处于 HOLD 状态的消息。消息被暂停的理由仅有 3 个:

    • Lotus Domino 被配置为 Hold Undeliverable Mail(在 Configuration Settings 文档的 Router/SMTP, Advanced, Controls 选项卡下,在“ Restrict name lookups to primary directory only ”部分)。 [DONE]
    • 有一个 Server Mail Rule 被配置为“暂停”消息(在 Configuration Settings 文档的 Router/SMTP, Restrictions and Controls, Rules 选项卡上)。 [DONE]
    • 第三方产品,尤其是杀毒软件,是阻止邮件的最常见原因。 [DONE]

    6.消息未决。在服务器的控制台上发出一个“ tell router show ”命令。如果它表明您的消息的目的地为:

    • 处于 WAIT 状态,请转到步骤 8 。
    • 处于 BUSY 状态,请转到步骤 9 。
    • 处于 RETRY 状态,请转到步骤 10 。

    如果看不到消息的目的地,请转到步骤 9 。

    7. 在 Log.nsf 中检查控制台日志或 Mail Routing Events 视图,看看消息是否被发送到下一站:

    • 如果下一站是 Domino,请返回到步骤 3 。
    • 如果下一站不是 Domino,那么问题就与 Domino 无关。 [DONE]
    • 如果日志中没有该消息,请向 Lotus Support 寻求帮助。 [DONE]

    8. 消息处于 Wait 状态有 2 个原因:

    • 它被标记为“低优先级”,并且正在等待低优先级路由时间范围。 [DONE]
    • 连接文档设置显示“ Route at once if X messages pending ”,并且 X 的阈值还没达到。 [DONE]

    9. 在服务器的控制台上发出show tasks命令。如果您看到:

    • 一个路由器线程的状态显示为 IDLE,请向 Lotus Support 寻求帮助。 [DONE]
    • 所有路由器线程的状态都为“ Connecting to ... ”或“ Connecting to ... ”,这可能是服务器超载引起的,积累的邮件正在等待空闲的传输线程。 [DONE]
    • 一个路由器线程的状态显示为 DISPATCHING,请转到步骤 11 。

    10. 查看列标题“ Reason of last error ”,如果它显示:

    • “服务器没有响应”,请转到步骤 12 。
    • “远程系统为未知 TCP/IP 主机”,请转到步骤 13 。
    • “没有错误”,请向 Lotus Support 寻求帮助。 [DONE]
    • “ 400 SMTP Protocol Returned a Transient Error ”,该问题通常与网络或目标服务器相关。 [DONE]

    如果没有出现以上问题,请向 Lotus Support 寻求帮助。 [DONE]

    11. 如果您看到一个路由器线程的状态为 DISPATCHING,该问题常常与 DNS 相关。确保正确填充 Microsoft® Windows® 注册表中的 所有 NameServer 键:

    1. 启动注册表(Start > Run,然后输入 REGEDIT)。
    2. 查找以下注册表键: \H KEY_LOCAL_MACH IN E\SYSTEM\CU RRENTCONTROLSET\SERVI CES\TC PI P\PARAMATERS\I NTERFACES
    3. 确保“ NameServer ”字符串包含针对 DNS 的正确 IP 地址;如果它没有包含 IP 地址,那么在字段中输入该 IP 地址并重启 Domino 路由器。 [DONE]
    4. 尝试在 Notes.ini 文件中使用 DNSServer=<1.2.3.4>(其中 1.2.3.4 表示您的 DNS 服务器的 IP 地址),从而让 Lotus Domino 绕过 OS 直接查询 DNS 。 [DONE]

    12. 使用 Telnet 在端口 25(SMTP)和端口 1325(NRPC)上测试远程服务器的连接:

    • 如果不能连接,很可能是网络或防火墙问题。 [DONE]
    • 如果能够连接,可能是 DNS 在解析目标服务器时为 Lotus Domino 提供了一个错误的值。(回到步骤 11)。

    13. “远程系统为未知 TCP/IP 主机”错误表明 DNS 不能将主机名解析为 IP 地址(回到步骤 11)。

    入站 SMTP 出现问题

    如果您:

    • 不能从 所有 Internet 域接收 SMTP 邮件,请转到步骤 1 。
    • 仅能够从一些 Internet 域或地址接收 SMTP 邮件,请转到步骤 2 。

    1. 在 Domino 控制台上发出show tasks命令;如果您:

    1. 看到“ SMTP 服务器:在端口 25 上监听请求”,请转到步骤 3 。
    2. 没有看到“ SMTP 服务器”,请转到步骤 4 。
    3. 看到“ SMTP 服务器”在其他端口监听请求,而不是 25 端口,请转到步骤 5 。

    2. 收集在 Log.nsf 或控制台日志中看到的 DFR 和任何相关的错误。请向 Lotus Support 寻求帮助。 [DONE]

    3. 检查 DNS 中针对您的 Internet 域的 MX 记录。(有一些网站为此提供帮助,例如 www.dnsstuff.com)。如果 MX 记录:

    1. 不存在,请联系 DNS 管理员或 ISP 获取 MX 记录。 [DONE]
    2. 存在,但指向非 Domino 服务器,请转到步骤 6 。
    3. 存在,并且指向 Domino 服务器,请转到步骤 7 。

    4. 进入 Server 文档的 Basics 选项卡,并找到“ SMTP Listener Task ”字段。检查它是否被设置为 ENABLED,然后在服务器控制台上发出load smtp命令(见步骤 1)。

    5. 第三方软件可能被配置为在端口 25 进行监听,然后通过另一个端口将邮件传输给
    Lotus Domino(通常是端口 26)。检查您是否在端口 25 上运行第三方 SMTP 监听器:

    1. 如果是,请联系供应商获得帮助,因为所有入站 SMTP 必须首先指向端口 25 。 [DONE]
    2. 如果没有,请在 Server 文档中将 Domino Inbound SMTP 端口重置为 25 。(见步骤 1)。

    6. 在外部网络和 Domino 环境之间有一个非 Domino 网关:

    1. 联系供应商获得非 Domino 服务器支持,诊断并解决不能接收 SMTP 邮件的问题。 [DONE]
    2. 网关能够接收 SMTP 邮件,但不能传输到 Domino,请转到步骤 7 。

    7. 使用 Telnet 从防火墙外部测试通过端口 25 到 Lotus Domino 服务器的连接。为此,在防火墙外部找到一个工作站;如果它是 Windows 平台,打开命令提示符并输入
    “ telnet 25 ”。图 5 显示了能够成功连接到 Domino 服务器(注意,显示了版本号)。


    图 5. 成功的连接
    图 5. 成功的连接

    如果 Telnet 连接:

    1. 成功,但得到一个 220 Domino 提示,请转到步骤 8 。
    2. 成功,但得到一个非 Domino 提示,请回到步骤 5 。
    3. 失败,请转到步骤 9 。

    8. 通过 Telnet 执行完整的 SMTP 会话。图 6 演示了 Domino 服务器的成功 SMTP 会话。要在这个步骤获得帮助,请向 Lotus Support 寻求帮助。


    图 6. Lotus Domino 成功会话
    图 6. Lotus Domino 成功会话

    如果通过 Telnet 的 SMTP 会话:

    1. 成功,并且允许投递消息,那么接收者就会在邮件文件中收到消息,Lotus Domino 正常工作并且可以接收 SMTP 邮件。 [DONE]
    2. 看似成功,Domino 服务器声称可以接受并投递消息,但接收者的邮件文件没有收到消息,请回到 5.1 小节的步骤 3 。
    3. 失败,并且在交换命令时得到 4XX 或 5XX 错误消息,请收集错误消息并向 Lotus Support 寻求帮助。 [DONE]

    9. 在防火墙 内部 找一个工作站,并重复相同的 Telnet 连接测试:

    1. 如果 Telnet 连接成功,那么入站 SMTP 问题很可能是防火墙在端口 25 阻止入站数据引起的。 [DONE]
    2. 如果 Telnet 连接失败,请转到步骤 10 。

    10. 直接从物理服务器 Telnet 到自身。如果 Lotus Domino 运行在 Windows 平台上,请在命令提示符处输入“ telnet localhost 25 ”

    1. 如果 Telnet 连接成功,请转到步骤 8 。
    2. 如果 Telnet 连接失败,请向 Lotus Support 寻求帮助。 [DONE]

    Internet 用户回复邮件时得到一个 DFR 错误

    在这个场景中,问题的根源是不正确的 Internet 地址语法。不正确的回复地址的典型例子是 joe.user/org%domain@domain.com。正确的语法为 joe.user@domain.com。

    1. 在 Advanced > Locations 视图下面的 Notes Client Personal Address Book 中打开 Location 文档。最常使用的 Location 文档是“ Office ”文档。如果您的 Internet Address 字段为:

    1. 空白,请转到步骤 2 。
    2. 显示错误值,请将其更改为正确的值。 [DONE]
    3. 显示正确值,请转到步骤 3 。

    2. 可能 Domino 管理员是有意留空该字段的,这样可以限制用户修改 Internet 地址,以及允许在服务器的 Domino Directory 集中执行地址查找

    1. 如果不是 Domino 管理员有意留空该字段,请用所需的 Internet 地址填充它。 [DONE]
    2. 如果是 Domino 管理员有意留空该字段,请转到步骤 4 。

    3. 打开 Sent 文件夹并右键单击某个 Internet 接收者的最新消息。转到 Document Properties,单击 Fields 选项卡(第二个选项卡),然后查找 iNetFrom 字段:

    1. 如果不能找到该字段,或该字段显示错误的值,请转到步骤 5 。
    2. 如果找到该字段,并且其值与 Location 文档中的 Internet Address 字段一样,但问题仍然没有解决,请向 Lotus Support 寻求帮助。 [DONE]

    4. 在 Domino Directory、Configuration 文件夹、Messaging 和 Domains 视图中打开
    Global Domain 文档。检查是否在 Restrictions 选项卡中列出 Notes Domain,然后查看 Conversions 选项卡。如果“ Internet Address Lookup ”字段:

    1. 为 ENABLED,请转到步骤 6 。
    2. 为 DISABLED,请转到步骤 7 。

    5. 您的 Lactation 文档很可能已经损坏。请创建一个新的 Location 文档,并根据旧的 Location 文档填充必要的值。然后删除旧的 Location 文档,并将另一个测试消息发送到 Internet(见步骤 3)。

    6. 查找并打开发送者的 Personal 文档。如果其中的 Internet Address 字段为:

    1. 空白,请用所需的值填充它。 [DONE]
    2. 空白,并且是 Domino 管理员有意留空的,请转到步骤 7 。
    3. 正确填充,请向 Lotus Support 寻求帮助。 [DONE]

    7. 返回到 Global Domain 文档的 Conversions 选项卡。检查“ Local part formed from: ”字段是否设置为“ Common Name ”,以确保本地部分(@ 符号左边的部分)为“ joe.user ”而不是“ joe.user/org ”。然后检查“ Domino Domains Included ”字段是否设置为“ None ”,以确保“ %domain ”没有添加到 Internet 地址。 [DONE]

    通过 POP3 或 IMAP 接收邮件出现问题

    如果在下列操作中出现问题:

    • 通过 POP3 获取邮件,请转到步骤 1 。
    • 通过 IMAP 获取邮件,请转到步骤 9 。

    1. 如果您的 POP3 客户端:

    1. 不能连接到 Lotus Domino,请转到步骤 2 。
    2. 能连接但身份验证失败,请转到步骤 3 。
    3. 能够通过身份验证但不能接收邮件,请转到步骤 4 。

    2. 在 Domino 控制台上发出show tasks命令,并查找在端口 110 上监听请求的 POP3 Server 。如果您:

    1. 看到在端口 110 上执行监听任务,请转到步骤 5 。
    2. 没有看到 POP3 Server 任务执行监听,请转到步骤 6 。

    3. 检查用户是否有一个在 Person 文档中指定的 Internet 密码。这是用于身份验证的 POP3 密码。 User Name 取决于在 Security 选项卡上设置的以下 Server 文档:


    Security 选项卡

    1. 如果该字段设置为 More name variations with lower security, 那么用于身份验证的用户名就能够匹配用户的 Person 文档中的 shortname、lastname、common name 或 Internet 地址。
    2. 如果该字段设置为 Fewer name variations with higher security, 那么用于身份验证的用户名就能够匹配用户的 Person 文档中的 Internet 地址和 common name 。(见步骤 8)。

    4. 收集任何出现在 POP3 Client 或 Domino 服务器控制台 / 日志中的错误消息。如果不能在 Lotus Support Web 站点 找到这些错误,请向 Lotus Support 寻求帮助。 [DONE]

    5. 使用 Telnet 从安装 POP3 Client 的工作站通过端口 110 测试 Domino 的连接。如果是
    Windows 平台,请打开命令提示符并输入“ telnet 110 ”。

    1. 如果 Telnet 连接成功,将提示 OK Domino(请转到步骤 7)。
    2. 如果 Telnet 连接失败,请从防火墙内部重复相同的 Telnet 测试。如果连接成功,那么很可能是防火墙阻止外部用户通过端口 110 。 [DONE]

    6. 检查是否在 Server 文档、Ports 选项卡、Internet Ports 和 Mail 选项卡中启用了 POP3 端口 110 。这个端口应该默认启用。核实之后,在控制台发出 load pop3 命令。

    1. 如果禁用了 110 端口,请首次启用它(见步骤 2)。
    2. 如果已经启用 110 端口,请向 Lotus Support 寻求帮助。 [DONE]

    7. 确认 POP3 Client 被配置为使用 110 作为 POP3 端口。此外,尝试在 POP3
    Name 字段中使用 IP 地址(与在 Telnet 上使用的一样)。如果 DNS 不能解析 POP3 服务器的主机名,连接就是失败的。 [DONE]

    8. 使用 Telnet 测试 POP3 身份验证。从命令提示符通过端口 110 连接到 Domino 服务器。在收到 OK Domino 提示之后,输入:

    User username  
     Pass password 

    1. 如果收到提示“ OK用户名有 X 条消息”,身份验证成功。对 POP3 客户端使用相同的凭证。 [DONE]
    2. 如果收到提示“ -ERR Error ”,使用这些凭证的身份验证失败。在 Person 文档中重新设置 Internet 密码,并通过 Telnet 重复测试身份验证,直到登录成功。 [DONE]

    9. 如果 IMAP Client:

    1. 不能连接到 Lotus Domino,请转到步骤 10 。
    2. 能够连接,但身份验证失败,请转到步骤 11 。
    3. 能够通过身份验证,但不能获取邮件,请转到步骤 12 。

    10. 在 Domino 控制台上发出show tasks命令,并查看 IMAP Server 是否在端口 143 上监听请求。如果您:

    1. 看到 IMAP Server 在端口 143 上执行监听任务,请转到步骤 13 。
    2. 没有看到 IMAP Server 的监听任务,请转到步骤 14 。

    11. 确认用户拥有在 Person 文档中指定的 Internet 密码。这就是用于身份验证的 IMAP 密码。 User Name 将取决于在 Security 选项卡中的 Server 文档:


    Security 选项卡

    Security 选项卡

    如果这个字段设置为More name variations with lower security,那么用于身份验证的 User Name 将能够匹配用户的 Person 文档中的 shortname、lastname、common name 或 Internet 地址。

    如果这个字段设置为Fewer name variations with higher security,那么用于身份验证的 User Name 将能够匹配用户的 Person 文档中的 common name 或 Internet 地址。

    1. 收集出现在 IMAP Client 或 Domino 服务器控制台 / 日志中的所有错误消息。如果不能在 Lotus Support Web 站点 找到这些错误,请向 Lotus Support 寻求帮助。 [DONE]
    2. 使用 Telnet 从安装 IMAP Client 的工作站通过端口 143 测试 Domino 的连接。如果是
      Windows 平台,打开命令提示符并输入“ telnet 143 ”。图 8 显示了成功连接到 Domino 服务器。


    图 8. 成功连接
    图 8. 成功连接

    1. 如果 Telnet 连接成功,将收到提示 OK Domino(请转到步骤 15)。
    2. 如果 Telnet 连接失败,请从防火墙内部重复相同的 Telnet 测试;如果连接成功,那么很可能是防火墙阻止外部用户连接到端口 143 。 [DONE]

    14. 检查是否在 Server 文档、Ports 选项卡、Internet Ports 和 Mail 选项卡中启用了
    IMAP 端口 143 。这个端口应该默认启用。核实之后,在控制台发出load imap 命令:

    1. 如果禁用了 143 端口,请首次启用它(见步骤 10)。
    2. 如果已经启用 143 端口,请向 Lotus Support 寻求帮助。 [DONE]

    15. 确认 IMAP Client 被配置为使用 143 作为 IMAP 端口。此外,尝试在 IMAP Server Name 字段中使用 IP 地址(与在 Telnet 上使用的一样)。如果 DNS 不能解析 IMAP 服务器的主机名,连接就是失败的。 [DONE]

    16. 使用 Telnet 测试 IMAP 身份验证。从命令提示符通过端口 143 连接到 Domino 服务器。在收到 OK Domino 提示之后,输入:

    tag loginusername password

    1. 如果收到提示“ OK 登录完成”,身份验证成功。对 IMAP 客户端使用相同的凭证。 [DONE]
    2. 如果收到提示“登录用户名或密码无效”,使用这些凭证的身份验证失败。在 Person 文档中重新设置 Internet 密码,并通过 Telnet 重复测试身份验证,直到登录成功。 [DONE]

    Notes 邮件文件收到重复的消息

    如果收到重复消息的发送者:

    • 是内部 Notes 用户,请转到步骤 1 。
    • 位于 Internet,请转到步骤 2 。

    1. 打开 Notes Client 的 Inbox 并找到重复的消息。右键单击第一条消息并转到“ Document Properties ”。单击 Field 选项卡(第二个选项卡)并突出显示PostedDate字段。记录时间戳的值:“ 04/04/2006 07:58:01 AM EDT ”。如果

    1. PostedDate匹配,请转到步骤 3 。
    2. PostedDate不匹配,请转到步骤 4 。

    2. 通过 Notes Client 在邮件文件中查找重复消息,并选择 View > Show > Page Source 。第一组字段为 RFC822Received字段。每个Received字段表示消息从源服务器到达目标服务器时经过的一个 SMTP 服务器站。每个服务器站都标记有收到消息的时间。将Received字段列表的时间戳与重复消息的时间戳进行比较:

    1. 如果一组Received字段没有显示相同的时间戳,请转到步骤 10 。
    2. 如果Received字段列表显示相同的时间戳,请回到步骤 3 。

    3. 在 Document Properties 的 Field 选项卡上查找$MessageID字段。将整个值与重复消息的 $MessageID进行比较:

    1. 如果 $MessageID值匹配,请转到步骤 5 。
    2. 如果 $MessageID值不匹配,请转到步骤 6 。

    4. 如果PostedDate字段值不匹配,发送者的邮件客户端就会两次构建该消息。这不是真正的重复消息。出现这种情况的原因可能是发送者的邮件文件代理发生故障或发送者有意发送两次。 [DONE]

    5. 在 Document Properties 的 Field 选项卡中,找到RouteServers字段。记录该信息经过的 Domino 服务器的列表,比如:

    "CN=SERVER02/OU=ACM E/O=Lotus" 
     "CN=SERVER04/OU=ACM E/O=Lotus"

    将这个列表与重复消息的RouteServers列表进行比较:

    1. 不匹配的列表可能是 Domino Directory 配置引起的。请向 Lotus Support 寻求帮助。 [DONE]
    2. 如果 RouteServers 列表与重复消息匹配,请转到步骤 7 。
    1. 如果 $MessageID字段值不匹配,我们就不是处理真正的重复消息。第三方干预消息(最常见的是杀毒软件扫描 Mail.box 中的消息时进行的干预)可能造成不一致的 $MessageID。 Mail.box 中的定制代理也可能修改消息的字段值。注意:不支持定制的 Mail.box 代理。 [DONE]
    2. 在 Document Properties 的 Fields 选项卡中,找到 RouteTimes 字段,并注意列表的时间。这些时间应该与 RouteServers 列表保持一致;例如:

    RouteServers: 
     "CN=SERVER02/OU=ACM E/O=Lotus" 
     "CN=SERVER04/OU=ACM E/O=Lotus"Route Times: 
     04/04/2006 07:58:02 AM - 04/04/2006 07:58:03 AM 
     04/04/2006 07:58:03 AM - 04/04/2006 07:58:04 AM

    在以上的示例中,SERVER02 在 7:58:02AM 收到消息,并于 7:58:03AM 路由到
    SERVER04 。 SERVER04 在 7:58:03AM 从 SERVER02 收到消息,并于 7:58:04AM 将其投递到邮件文件。

    通过将这些字段与重复消息中的相同字段进行比较,我们就可以确定哪个服务器负责传输或投递重复消息。尤其是Route Times时间戳与重复消息时间戳不匹配时,肯定是服务器引起的。

    1. 如果重复消息的RouteTimes是相同的,请转到步骤 8 。
    2. 如果确定了引起问题的服务器,请转到步骤 9 。
    1. 在少数情况下,重复消息的 RouteTimes 字段是匹配的,这时我们只能假设路由器仅向邮件文件发送该消息一次。

    为了证实假设,需要查看 Log.nsf(Mail Routing Events 视图),其中仅有一个条目说明消息已发送给接收者。证实之后,我们可以将引起重复消息的根源限定为复制代理或接收者的邮件文件中的规则。 [DONE]

    1. 很多情况下,第三方提供的杀毒软件会将消息的 RoutingState 更改为 Pending之外的其他值,使其在扫描期间不能路由。另一种扫描方法是将消息移动到一个临时位置,比如隔离数据库。

    当扫描完成时,杀毒软件负责将消息以 Pending 状态返回到 Mail.box 。但是,当杀毒软件发生故障时,就可能多次将消息存放到 Mail.box,这就造成重复的消息。

    目前,已知道的能够造成重复消息的唯一 Domino 服务器 bug 已经添加到 SPR#PAZR6LM4UT文档中。注意,在路由负载过重时重启路由器是引发该问题的必要条件。 [DONE]

    1. 找到不匹配的Received字段。在 前面的 Received 字段中列出的 SMTP 服务器引起了重复的消息。如果第一个Received字段不匹配,那么发送者就会发送两次消息。如果引起问题的服务器为:
    2. 非 Lotus Domino 服务器,请联系供应商获得技术支持。 [DONE]
    3. Lotus Domino 服务器,请转到步骤 9 。

    邮件发送给错误的接收者

    如果邮件被发送给错误的接收者,请检查:

    1. 接收者的 Person 文档(见步骤 3)。
    2. Configuration 文档、Router/SMTP 选项卡和 Basics 选项卡(见步骤 4)。
    3. 接收者的邮件文件名;如果文件名错误,请将其改正。 [DONE]
    4. Address lookup 字段;如果它被设置为“ Fullname then local part ”,请将其改为“ Fullname only ”(见图 9)。此外,确保在第一个接收邮件的服务器(入站 SMTP 服务器)上完成该设置。


    图 9. Address lookup 字段

    重要的问题诊断命令

    能够帮助收集诊断邮件路由问题数据的服务器命令包括:

    1. Show Server
    2. Tell Router Show Queue
    3. Show Task
    4. Show Task Time
    5. Show Stat Mail
    6. Route
    7. Trace

    图 10 显示了 show server 命令的示例输出。


    图 10. Show server 命令的输出
    图 10. Show server 命令的输出

    下面是 Tell Router Show Queue 命令的示例输出:

    Msgs State Via Destination 
     57 Busy(18) NRPC [ $LocalDelivery] 
     24 Retry( 4) NRPC CN=MesungUS/O=Sun (Push) 
    	 Last error: Server not responding 
    	 Next retry: 1/04/2009 09:53:09 AM 
     Transfer Threads: Max = 18; Total = 14; Inactive = 0; Max Concurrent = 9 
     Delivery Threads: Max = 18; Total = 18; Inactive = 0

    要了解更多信息,请参考 Lotus Software Knowledge Base 文档 #1093506,“ How to Read the Output of TELL ROUTER SHOW Command ”

    图 11 显示 Show Tasks 命令的示例输出。


    图 11. Show Tasks 的输出
    图 11. Show Tasks 的输出

    下面是 Show Tasks Time 命令的示例输出:

    Database Server 	 Process Monitor: [ 04/02/2009 15:51:05 ZE5B] 
     SMTP Server 	 Listen for connect requests on TCP Port:25 
     : [04/02/2009 15:50:35 ZE5B] 
     SMTP Server 	 Utility task: [ 04/02/2009 15:50:35 ZE5B] 
     IMAP Server 	 Listen for connect requests on TCP Port:143 
     : [04/02/2009 15:50:35 ZE5B] 
     IMAP Server 	 Utility task: [ 04/02/2009 15:50:35 ZE5B] 
     POP3 Server 	 Listen for connect requests on TCP Port:110 
     : [04/02/2009 15:50:35 ZE5B] 
     POP3 Server 	 Utility task: [ 04/02/2009 15:50:35 ZE5B] 
     Process Monitor 	 Idle: [ 04/02/2009 15:50:50 ZE5B] 
     Agent Manager 	 Executive '1': Idle: [04/02/2009 15:50:50 
     ZE5B] 
     Calendar Connector 	 Idle: [ 04/02/2009 15:50:35 ZE5B] 
     SMTP Server 	 Control task: [ 04/02/2009 15:50:50 ZE5B] 
     Rooms and Resources Idle: [ 04/02/2009 15:50:50 ZE5B] 
     IMAP Server 	 Control task: [ 04/02/2009 15:50:50 ZE5B] 
     Schedule Manager 	 Idle: [ 04/02/2009 15:50:50 ZE5B]

    图 12 显示 Show Stat Mail 命令的示例输出。


    图 12. Show Stat Mail 的输出(查看清晰图
    图 12. Show Stat Mail 的输出

    Route 命令例子:

    • Route Marketing/Acme

      将邮件发送到 Acme 域中的 Marketing 服务器。服务器控制台显示表明路由何时开始的消息。

    • Route *

      将邮件发送到所有正在等待的目标。

    • Route [$LocalDelivery]

      覆盖下一次重试时间,并立即尝试本地投递。

    Trace 命令例子:
    Trace Ryan/Lotus

     Determining path to server Marketing/Acme 
     Available Ports: TCPIP 
     Checking normal priority connection documents only... 
     Allowing wild card connection documents... 
     Enabling name service requests and probes... 
     Address found in local TCPIP names table for 
     Marketing/Acme Connecting to Marketing/Acme over TCPIP 
     Using address 'x.xx.xxx.xxx' for Marketing/Acme on TCPIP 
     Connected to server Marketing/Acme

    使用调试工具收集更多诊断数据

    对于内部邮件投递问题,以及通过 SMTP 将邮件发送到 Internet,请使用以下调试工具:

    • DebugRouter
    • Log_MailRouting
    • DebugRouterLookup

    表 1 给出了 DebugRouter 的值和日志。


    表 1. DebugRouter 的值
    表 1. DebugRouter 的值

    DebugRouter=3 的输出是 1 和 2 的输出的累加:

    DebugRouter=3 
     Domain *.* added 
     Server CN=MARKETING/O=ACME added to server table, tasks = 0001. 
     Server CN=SALES/O=ACME added to server table, tasks = 0001. 
     Connection from CN=MARKETING/O=ACME to CN=SALES/O=ACME 
     has a Cost= 1 Connection from CN=SALES/O=ACME to CN=MARKETING/O=ACME 
     has a Cost= 1 Sorted Domains follow: 
     Wildcard SMTP Domain='*.*', NextDomain='THEINTERNET ‘
     Rule table is 1 segments (0 bytes) 
     Sorted Rules follow: 
     Sorted Connections follow: (Source -> Destination) 'CN=MARKETING/O=ACME'@'LOTUS' -> 
     'CN=SALES/O=ACME'@'LOTUS ‘
     'CN=SALES/O=ACME'@'LOTUS' -> 'CN=MARKETING/O=ACME'@'LOTUS'

    表 2 给出了 Log_MailRouting 的值和日志。


    表 2. Log_MailRouting 的值
    表 2. Log_MailRouting 的值

    Log _MailRouting=40 的输出是 10、20 和 30 的输出的累加:

    Log_MailRouting=40
    
    01/04/2009 05:40:21 PM Router: Searching for messages 
    since 01/04/2009 05:39:55 PM 01/04/2009 05:40:21 PM 
    Router: Message  1:1388 has 1 recipients, priority = 1 
     01/04/2009 05:40:2 1 PM Router: Note NT00000D02 in mailbox 1 from'CN=Admin 
     User/O=ACME ‘
     01/04/2009 05:40:21 PM Router: Recipient 0 = 'CN=Admin User/O=ACME@Lotus 
     ‘ 01/04/2009 05:40:2 1 PM 
     Router: Recipient 0 Username = 'CN=AdminUser/O=ACME' Domain = 'Lotus ‘
     01/04/2009 05:40:21 PM Router: Message  1:1388 
     adding recipient Admin User/Lotus@Lotus (mail\auser.nsf) 
     to the Local Delivery queue 
     0 1/04/2009 05:40:2 1 PM Router: Message 007C88FD delivered to Admin 
     User/Lotus from Admin User/Lotus OFB519EB71 :FC2D0599 
     ON85256FA1 :007C88FD Size: 1K Time: 00:00:0 1 Hop Count: 1 
     0 1/04/2009 05 :40:26 PM Router: Deleting delivery 
     queue [$LocalDelivery] 
     0 1/04/2009 05 :40:26 PM Router: Deleting delivery 
     recipient descriptor for CN=Admin User/O=ACME

    表 3 给出了 DebugRouterLookup 的值和日志。


    表 3. DebugRouterLookup 的值
    表 3. DebugRouterLookup 的值
    DebugRouterLookup=3 [Bogus User] 
     0 1/04/2009 05:07:50 PM DebugRLookup: 
     Lookup beginning for user:bogus.user name: 
     bogus.user@sun.com 0 1/04/2009 05:07:50 PM 
     DebugRLookup: Lookup beginning for user:bogus.user name: bogus.user 
     0 1/04/2009 05:07:50 PM DebugRLookup: Lookup error: 
     UserName: bogus.user Error: User %a not listed in Domino Directory 
     DebugRouterLookup=3 [Valid User] 
     02/07/2005 11:52:13 AM DebugRLookup: Lookup beginning 
     for user:test name: test 02/07/2005 11:52:14 AM 
     DebugRLookup: Lookup beginning for user:test name: 
     test 02/07/2005 11:52:14 AM DebugRLookup: 
     Lookup result has [2] matches. user: test name: test 
     02/07/2005 11:52:14 AM DebugRLookup: 
     Lookup multiple match 2 Fullname[1] = CN=Test User/O=Lotus 
     02/07/2005 11:52:14 AM DebugRLookup: 
     Lookup multiple match 1 Fullname[1] = CN=Test User/O=IBM/C=IN 
     02/07/2005 11:52:14 AM DebugRLookup: 
     Lookup multiple match 1 Fullname[2] = Test User 
     02/07/2005 11:52:14 AM DebugRLookup: 
     Lookup Error: Non unique matches for user:Test name: Test

    使用 Notes.ini 变量进行调试

    下面列出一些 Notes.ini 变量,可以通过在 Domino 服务器上设置它们来调试 SMTP 路由问题。这些变量内容摘自 Lotus Support Techdoc #:7003007, “ Domino Router notes.ini debug parameters for SMTP" 。

    重要注意事项:SMTPClientDebug 参数不需要使用 Notes.ini 参数 debug_outfile 。所有信息都写到 Log.nsf 的 Miscellaneous 部分。不过,SMTPDebug 和 SMTPDebugIO 没有将其 outfile(输出文件)写到 LOG.NSF,因此需要使用以下参数:

    debug_outfile=path/filename .txt

    SMTPClientDebug 。 捕捉出站 SMTP 协议对话。这适用于所有通过 SMTP 协议和路由器发送到其他服务器的消息。注意,这并不包含消息的内容,而是更高级别的协议命令和响应:

    1 – 支持捕捉出站 SMTP 消息传输协议。

    SMTPDebug 。 捕捉入站 SMTP 协议对话。这是适用于 SMTP 监听器通过 SMTP 协议从所有客户机和服务器接收到的消息:

    1 – 支持 SMTP 监听器的最小日志记录。

    2 – 支持对带有额外调试信息的已发送和接收的数据进行信息日志记录。这个设置能够提供随传输数据附带的已接收 / 发送的命令和响应,但不包含传输的文本。

    3 – 支持详细记录已发送和接收的数据。这个设置和设置 2 记录的信息结合起来,就可以通过 SMTP 显示接收 / 发送的真实文本。注意,这并不包含消息的文本体。

    4 – 这些最详细的日志记录(注意,这是未归档的值;文档仅列出前 3 个级别)。

    SMTPDebugIO 。支持记录 SMTP 监听器任务接收到的所有数据:

    0 – 不记录日志

    1 – 在 SMTP 会话期间发送和接收的字节数

    3 – 记录 SMTP 任务接收到的所有数据

    4 – RFC822 数据(消息数据)

    语法: SMTPDebug IO=value

    警告: 仅在必要时使用 SMTPDebugIO,并且要尽快禁用它。它会让日志文件变得非常大,并且记录接收到的消息的内容。

    适用于: SMTP 服务器

    默认值: 0

    UI 等效: 没有

    图 13 给出了 SMTPDebugIO=4 的示例输出。


    图 13. smtpdebugio=4 的示例输出
    图 13. smtpdebugio=4 的示例输出

    SMTPSaveImportErrors 。支持 SMTP 监听器在收到消息上下文时将其完整地保存下来。消息被写到系统中名为 STXXXXXX.TMP 的临时目录中的文件中。当消息保存在临时文件中之后,一行表示文件名的文字将被写到日志中。控制消息保存的参数的值如下所示:

    1 – 保存所有导入失败的消息(解析 / 保存到 MAIL.BOX)。这一设置能够捕捉我们不能接收到的从其他 SMTP 服务器发送到该服务器的消息。注意,使用该值时仅能将导致 严重错误 的消息写到临时文件中。

    2 – 保存服务器接收到的所有消息。

    3 – 在导入和删除所有已经成功接收并写到 MAIL.BOX 的消息期间保存所有入站消息。仅将没有成功导入到 MAIL.BOX 的消息保存到临时文件中。

    要了解更多信息,请参考 Knowledge Base 文档 #:1095102 “ How to trap inbound SMTP messages on a Domino server ”。

    为了检查 SMTP 邮件路由中与网络相关的问题,我们可以使用这些调试参数:

    debug_tcp_resolver=1 。在诊断 DNS 问题时提供“好”和“坏”示例响应。

    debug_tcp_session=1 。显示关于在 TCP/IP 上打开和关闭的会话的调试信息。

    要了解更多信息,请参考 Knowledge Base 文档 #: 1087806 “ How should the DEBUG OUTFILE Parameter Be Implemented? ”

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14751907/viewspace-608405/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-04

  • 博文量
    233
  • 访问量
    435287