診斷並解決 IBMLotusDomino8 郵件路由問題

genusBIT發表於2009-07-06

轉自: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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章