Sun Java System Messaging Server 6 2005Q4 管理指南

管理 MTA 郵件和連線記錄

MTA 提供在每封郵件形成佇列和移出佇列時對其進行記錄的功能。還提供了派送程式錯誤和除錯輸出。

您可以控制每個通道上的記錄,也可以指定要記錄的所有通道上的郵件作業。在初始配置中,記錄在所有通道上均被停用。

請參閱啟用 MTA 記錄,以取得更多資訊。

啟用記錄使得 MTA 在每次郵件通過 MTA 通道時,都將一個項目寫入至 msg_svr_base /data/log/mail* 檔案。這些記錄項目有助於收集正在經由 MTA (或特定通道) 郵件的數量統計。您還可以使用這些記錄項目來研究其他問題,例如是否傳送或投遞郵件以及何時傳送或投遞郵件。

郵件傳回工作 (每晚午夜時分執行),將所有現有 mail.log_yesterday 都附加到累積記錄檔 mail.log,將目前 mail.log_current 檔案重新命名為 mail.log_yesterday,並建立新的 mail.log_current 檔案。郵件傳回工作還對所有 connection.log* 檔案執行相似的作業。

MTA 執行自動重建以維護目前檔案時,必須透過為作業 (如備份檔案、截斷檔案、刪除檔案等) 決定策略來管理累積 mail.log 檔案。

考量如何管理記錄檔時,請注意 MTA 定期傳回工作將執行站點提供的 msg_svr_base/bin/daily_cleanup 程序 (如果存在)。因而某些站點可能選擇提供他們自己的清除程序,例如每週 (或每月) 重新命名一次舊的 mail.log 檔案等等。


備註 –

啟用記錄後,mail.log 將穩定地增長,如果不進行限制,將佔用所有可用磁碟空間。監視此檔案的大小並定期地刪除不必要的內容。您還可以刪除整個檔案,並依需要建立另一個版本。


瞭解 MTA 記錄項目格式

MTA 記錄檔以 ASCII 文字書寫。依預設,每個記錄檔項目都包含八個或九個欄位,如以下範例所示。

19-Jan-1998 19:16:57.64 l tcp_local E 1 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com

記錄項目顯示:

  1. 項目建立的日期和時間 (在此範例中為 19-Jan-1998 19:16:57.64)。

  2. 來源通道的通道名稱 (在此範例中為 l)。

  3. 目標通道的通道名稱 (在此範例中為 tcp_local)。(對於 SMTP 通道,啟用 LOG_CONNECTION 時,加號 (+) 表示內送到 SMTP 伺服器;減號 (-) 表示透過 SMTP 用戶端外寄。)

  4. 項目類型 (在此範例中為 E);請參閱表 21–2

  5. 郵件的大小 (在此範例中為 1)。依預設以千位元組為單位表示,儘管可以使用 MTA 選項檔案中的 BLOCK_SIZE 關鍵字變更此預設值。

  6. 訊息封 From: 位址 (在此範例中為 adam@sesta.com)。請注意帶有空訊息封 From: 位址的郵件 (如通知郵件),此欄位為空白。

  7. 訊息封 To: 位址 (在此範例中為 marlowe@siroe.com) 的原始格式。

  8. 訊息封 To: 位址 (在此範例中為 marlowe@siroe.com) 的原始格式。

  9. 投遞狀態 (僅適用於 SMTP 通道)。

下表說明記錄項目代碼。

表 21–2 記錄項目代碼

項目 

說明 

傳送至 SMTP 伺服器的錯誤指令。收件者位址欄位將包含被拒絕的指令,而診斷欄位將包含 SMTP 伺服器提供的回應。MTA 通道選項 MAX_B_ENTRIES 控制在給定的階段作業中登入的錯誤指令數目。預設為 10。 

BA 

早先在作業事件中成功執行認證後的錯誤指令。 

BS 

TLS 成功啟動後的錯誤指令。 

BSA 

具有 TLS 和 AUTH 的錯誤指令。 

成功移出佇列 

DA 

使用 SASL (認證) 成功移出佇列 

DS 

使用 TLS (安全性) 成功移出佇列 

DSA 

使用 TLS 和 SASL (安全性和認證) 成功移出佇列 

形成佇列 

EA 

使用 SASL (認證) 成功形成佇列 

ES 

使用 TLS (安全性) 成功形成佇列 

ESA 

使用 TLS 和 SASL (安全性和認證) 成功形成佇列 

拒絕嘗試形成佇列 (被從屬通道程式拒絕) 

收件者郵件被拒絕。,原因是寄件者請求 NOTIFY=NEVER 旗標設定,或郵件逾時,或者郵件被手動傳回 (例如:imsimta qm「delete」 指令始終為每位收件者產生「K」記錄,而 qm「return」指令將產生「K」記錄而不是「R」記錄)。這表示根據寄件者自己的請求未向寄件者傳送通知。

雖然此記錄可與「R」記錄 (相同類型的拒絕/逾時記錄) 進行比較,但還會根據此傳送失敗的郵件產生新的通知郵件 (傳回至原寄件者)。 

移出佇列時發生暫時故障 

嘗試移出佇列時,收件者位址被拒絕 (被主要通道程式拒絕) 或產生故障/退回郵件 

每當作業事件異常中斷時,均會出現警告訊息。每個佇列中之收件者位址會有一個「V」記錄。 

傳送警告訊息以通知原寄件者郵件尚未遞送,而是仍在被重試的佇列中。 

已成功傳送給一些收件者,但暫時未成功傳送給此收件者;所有收件者的原郵件檔案已被移出佇列,並在該位置讓此收件者和其他未成功傳送的收件者的新郵件檔案立即形成佇列 

SASL 通道的 LOG_CONNECTION + 或 - 項目 

連線關閉。接著會顯示一個診斷欄位。寫入 connection.log_current (或 mail.log_current,如果正在使用單一記錄檔 )。用於記錄關閉連線的原因。具體來說,如果由於某些階段作業中斷限制導致連線關閉,則該情況將顯示在診斷欄位中。 

連線開啟 

記錄 SMTP 認證成功和失敗情況。其格式與其他 O 和 C 項目相同。具體來說,以相同的次序顯示相同的應用程式與傳輸資訊欄位。如果使用者名稱為已知,它將被記錄在使用者名稱欄位中。LOG_CONNECTION MTA 選項的位元 7 (值 128) 控制該作業。 

連線已拒絕 

建立連線之前嘗試連線失敗 

ETRN 指令已收到 

LOG_CONNECTIONLOG_FILENAMELOG_MESSAGE_IDLOG_NOTARYLOG_PROCESSLOG_USERNAME 都在 MTA 選項檔案中啟用後,格式將發生變化,如以下範例所示。(此範例記錄項目行已因印刷排版原因而換行;實際記錄項目將顯示在一個自然行上。)


19-Jan-1998 13:13:27.10 HOSTA   2e2d.2.1 tcp_local   l
 E 1 service@siroe.com rfc822;adam@sesta.com
 adam 276 /imta/queue/l/ZZ01IWFY9ELGWM00094D.00
 <01IWFVYLGTS499EC9Y@siroe.com> inetmail
 siroe.com (siroe.com [192.160.253.66])
                  

除了上面已論述的那些欄位外,其中的附加欄位是:

  1. 執行通道程序的節點名稱 (在此範例中為 HOSTA)。

  2. 程序 ID (以十六進位表示),其後是小數點 (點) 字元和計數。如果這是具有多重執行緒的通道項目 (亦即 tcp_* 通道項目),則在程序 ID 和計數之間還會顯示執行緒 ID。在此範例中,程序 ID 是 2e2d.2.1

  3. 郵件的 NOTARY (傳送收據請求) 旗標,以整數表示 (在此範例中為 276)。

  4. MTA 佇列區域中的檔案名稱 (在此範例中為 /imta/queue/l/ZZ01IWFY9ELGWM00094D.00)。

  5. 郵件 ID (在此範例中為 <01IWFVYLGTS499EC9Y@siroe.com>)。

  6. 正在執行的程序的名稱 (在此範例中為 inetmail)。在 UNIX 上,對於派送程式程序 (如 SMTP 伺服器),此名稱通常為 inetmail (除非已使用 SASL)。

  7. 連線資訊 (在此範例中為 siroe.com (siroe.com [192.160.253.66])。連線資訊由傳送系統或通道名稱組成,如由 HELO/EHLO 線路上的傳送系統表示的名稱 (對於送進的 SMTP 郵件),或形成佇列的通道的正式主機名稱 (對於其他類型的通道)。對於 TCP/IP 通道,傳送系統的「實際」名稱 (亦即由 DNS 反向查詢和/或 IP 位址報告的符號名稱) 也可以在 ident* 通道關鍵字的控制下報告在括號內;請參閱預設 identnone 關鍵字的IDENT 查詢 實例使用,該關鍵字選取顯示從 DNS 中找到的名稱和 IP 位址。

啟用 MTA 記錄

若要僅收集幾個特定 MTA 通道的統計,請僅啟用這些相關 MTA 通道的記錄通道關鍵字。許多站點傾向於在所有 MTA 通道上啟用記錄。特別是,如果您要嘗試追蹤問題,診斷某些問題的第一步是注意到郵件未進入您期望或預計的通道,對所有通道啟用記錄將有助於您研究此類問題。

Procedure啟用特定通道上的 MTA 記錄

步驟
  1. 編輯 imta.cnf 檔案。

    該檔案位於 /opt/SUNWmsgsr/config 目錄中。

  2. 若要啟用特定通道記錄,請將 logging 關鍵字增加至通道定義。例如:


    channel-name keyword1 keyword2 logging
    

    此外,您還可以設定一些配置參數,如記錄檔的目錄路徑、記錄級別等等。請參閱管理郵件儲存記錄、管理記錄和預設服務記錄

Procedure啟用所有通道上的 MTA 記錄

步驟
  1. 編輯 imta.cnf 檔案。

    該檔案位於 /opt/SUNWmsgsr/config 目錄中。

  2. 將 logging 關鍵字增加至 defaults 通道 (請參閱配置通道預設) 配置檔案中。例如:


    defaults logging notices 1 2 4 7 copywarnpost copysendpost postheadonly 
    noswitchchannel immnonurgent maxjobs 7 defaulthost siroe.com
    
    l defragment charset7 us-ascii charset8 iso-8859-01
    siroe.com

指定附加 MTA 記錄選項

除了啟用記錄時始終提供的基本資訊之外,您還可以透過設定 MTA 選項檔案中的各種 LOG_* MTA 選項來指定要包含的附加、選擇性資訊欄位。透過 IMTA 調校檔案 (msg_svr_base/config/imta_tailor) 中的 IMTA_OPTION_FILE 選項指定的檔案將指定 MTA 選項檔案。依預設,該檔案為 msg_svr_base/config/option.dat 檔案。

如需有關 MTA 選項檔案的完整詳細資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「Option File」

Procedure將 MTA 記錄傳送至系統記錄

步驟
  1. 編輯 MTA 選項檔案。

  2. LOG_MESSAGES_SYSLOG 選項設定為 1。

    預設值為 0,表示不執行系統記錄 (事件記錄) 記錄。

Procedure關聯記錄訊息項目

步驟
  1. 編輯 MTA 選項檔案。

  2. LOG_MESSAGE_ID 選項設定為 1。

    預設值為 0,表示不將郵件 ID 儲存在 mail.log 檔案中。

Procedure識別郵件投遞重試

步驟
  1. 編輯 MTA 選項檔案。

  2. LOG_FILENAME 選項設定為 1。

    此選項便於立即發現特定郵件檔案投遞的重試次數。此選項也有助於瞭解是否將傳送給多個收件者的郵件分隔為磁碟上獨立的郵件檔案副本。

Procedure記錄 TCP/IP 連線

步驟
  1. 編輯 MTA 選項檔案。

  2. 設定 LOG_CONNECTION 選項。

    此選項可使 MTA 記錄 TCP/IP 連線以及郵件通訊。依預設,連線記錄項目被寫入 mail.log* 檔案。(可選擇) 還可以將連線記錄項目寫入 connection.log* 檔案。請參閱 SEPARATE_CONNECTION_LOG 選項,以取得更多資訊。

Procedure將項目寫入至 connection.log 檔案

步驟
  1. 編輯 MTA 選項檔案。

  2. SEPARATE_CONNECTION_LOG 選項設定為 1。

    使用此選項以指定將連線記錄項目改為寫入 connection.log 檔案。預設值為 0 將導致連線記錄被儲存在 MTA 記錄檔中。

Procedure按照程序 ID 關聯記錄訊息

步驟
  1. 編輯 MTA 選項檔案。

  2. 設定 LOG_PROCESS 選項。

    LOG_CONNECTION 結合使用時,此選項會依程序 ID 啟用連線項目與郵件項目的對應關係。

Procedure將與使郵件形成佇列的程序相關聯的使用者名稱儲存至 mail.log 檔案

步驟
  1. 編輯 MTA 選項檔案。

  2. 設定 LOG_USERNAME 選項。

    此選項控制是否將與使郵件形成佇列的程序相關聯的使用者名稱儲存在 mail.log 檔案中。對於使用了 SASL (SMTP AUTH) 的 SMTP 提交,使用者名稱欄位將是認證使用者名稱 (帶有星號字元字首)。

MTA 郵件記錄範例

記錄在 MTA 郵件檔案中的確切欄位格式和欄位清單將根據記錄選項設定而有所不同。本小節顯示一些解譯典型記錄項目類型的範例。如需有關附加、選擇性欄位的說明,請參閱指定附加 MTA 記錄選項


備註 –

由於印刷排版原因,記錄檔項目被摺疊成多行顯示 — 實際記錄檔項目是每行顯示一個項目。


查閱記錄檔時請記住在典型系統上可一次處理多封郵件。通常,與特定郵件相關的項目將散佈在與同時正在處理的其他郵件相關的項目中。基本記錄資訊適用於收集通過 MTA 移動的郵件總數的大致情況。

如果要關聯有關傳送至同一收件者的同一郵件的特定項目,請啟用 LOG_MESSAGE_ID。若要將特定郵件與 MTA 佇列區域中的特定檔案相關聯,或從項目中查看特定的尚未成功移出佇列的郵件的嘗試傳送次數,請啟用 LOG_MESSAGE_ID。對於 SMTP 郵件 (經由 TCP/IP 通道處理),如果要將遠端系統的 TCP 連線與已傳送的郵件關聯,請啟用 LOG_PROCESSLOG_CONNECTION 的某些層級。

MTA 記錄範例:使用者傳送外寄郵件

以下範例顯示在本機使用者透過外寄通道向外傳送郵件 (例如傳送到網際網路) 的情況下可能看到的記錄項目種類的相當基本的範例。在此範例中,啟用了 LOG_CONNECTION。標有 (1) 和 (2) 的行是一個項目 — 它們在實際記錄檔中將顯示在一個實體行上。同樣,標有 (3) - (7) 的行是一個項目並將顯示在一個自然行上。


範例 21–1 MTA 記錄:本機使用者傳送外寄郵件


19-Jan-1998 19:16:57.64 l            tcp_local    E 1         (1)
 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com     (2)
 
 19-Jan-1998 19:17:01.16 tcp_local                  D 1        (3)
 adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com     (4)
 dns;thor.siroe.com
 (TCP|206.184.139.12|2788|192.160.253.66|25)                   (5)
 (THOR.SIROE.COM -- Server ESMTP [iMS V5.0 #8694])             (6)
 smtp;250 2.1.5 marlowe@siroe.com and options OK.              (7)
  1. 此行顯示了一 (1) 封郵件從 l 通道形成佇列 (E) 到 tcp_local 通道的日期與時間。

  2. 此行是與位於同一記錄檔 (1) 自然行的一部分,為了印刷排版方便而在此處分行顯示。此行顯示了訊息封 From: 位址 (在此範例中為 adam@sesta.com),以及原來版本和目前版本的訊息封 To: 位址 (在此範例中為 marlowe@siroe.com )。

  3. 此行顯示了一 (1) 封郵件從 tcp_local 通道移出佇列 (D) 的日期與時間 — 亦即由 tcp_local 通道成功傳送到某遠端 SMTP 伺服器的日期與時間。

  4. 此行顯示了訊息封 From: 位址、原來訊息封 To: 位址和訊息封 To: 位址。

  5. 此行顯示了與之建立連線的實際系統在 DNS 中被命名為 thor.siroe.com,本機傳送系統具有 IP 位址 206.184.139.12 並從連接埠 2788 傳送,遠端目標系統具有 IP 位址 192.160.253.66,並且遠端目標系統的連線連接埠是連接埠 25。

  6. 此行顯示了遠端 SMTP 伺服器的 SMTP 大標題行。

  7. 此行顯示了傳回的此位址的 SMTP 狀態代碼;250 是基本的 SMTP 成功代碼,而且,此遠端 SMTP 伺服器使用延伸的 SMTP 狀態代碼和某附加文字進行回應。


MTA 記錄範例:包含選擇性記錄欄位

此範例顯示的記錄項目類似於範例 21–3LOG_MESSAGE_ID=1 中顯示的範例 (顯示檔案名稱和郵件 ID);請參閱 (1) 和 (2)。特別是郵件 ID 可用於建立項目與郵件的關聯關係。


範例 21–2 MTA 記錄 – 包含選擇性記錄欄位


19-Jan-1998 19:16:57.64 l            tcp_local    E 1
  adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com
  /imta/queue/tcp_local/ZZ01ISKLSKLZLI90N15M.00
   <01ISKLSKC2QC90N15M@sesta.com>    (1)
                  
 19-Jan-1998 19:17:01.16 tcp_local                  D 1
  adam@sesta.com rfc822;marlowe@siroe.com marlowe@siroe.com
  /imta/queue/tcp_local/Z01ISKLSKLZLI90N15M.00
    <01ISKLSKC2QC90N15M@sesta.com>   (2)
  dns;thor.siroe.com (TCP|206.184.139.12|2788|192.160.253.66|25)
  (THOR.SIROE.COM -- Server ESMTP [iMS V5.0 #8694])
  smtp;250 2.1.5 marlowe@siroe.com and options OK.

MTA 記錄範例 – 傳送至清單

此範例說明啟用 LOG_FILENAME=1LOG_MESSAGE_ID=1LOG_CONNECTION=1 向多個收件者傳送郵件。此處已將使用者 adam@sesta.com 傳送至 MTA 郵件收信人清單 test-list@sesta.com,此郵件收信人清單已延伸到 bob@sesta.comcarol@varrius.comdavid@varrius.com。請注意每個收件者的原來訊息封 To: 位址是 test-list@sesta.com,儘管目前訊息封 To: 位址是每個收件者各自的位址。請注意,儘管涉及兩個單獨的檔案 (一個針對 l 通道,而另一個針對外寄 tcp_local 通道),郵件 ID 卻始終保持一致。


範例 21–3 MTA 記錄 – 傳送至清單


19-Jan-1998 20:01:44.10 l    l                    E 1
  adam@sesta.com rfc822;test-list@sesta.com bob
  imta/queue/l/ZZ01ISKND3DE1K90N15M.00
  <01ISKND2H8MS90N15M@sesta.com>
 
 19-Jan-1998 20:01:44.81 l            tcp_local    E 1
  adam@sesta.com rfc822;test-list@sesta.com carol@varrius.com
  imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00 
  <01ISKND2H8MS90N15M@sesta.com>
 
 19-Jan-1998 20:01:44.81 l            tcp_local    E 1
  adam@sesta.com rfc822;test-list@sesta.com david@varrius.com
  imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00
 <01ISKND2H8MS90N15M@sesta.com>
 
 19-Jan-1998 20:01:50.69 l                         D 1
  adam@sesta.com rfc822;test-list@sesta.com bob
  imta/queue/l/ZZ01ISKND3DE1K90N15M.00
  <01ISKND2H8MS90N15M@sesta.com>
 
 19-Jan-1998 20:01:57.36 tcp_local                  D 1
  adam@sesta.com rfc822;test-list@sesta.com carol@varrius.com
  imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00
  <01ISKND2H8MS90N15M@sesta.com>
  dns;gw.varrius.com (TCP|206.184.139.12|2788|192.160.253.66|25)
  (gw.varrius.com -- SMTP Sendmail)
  smtp;250 OK.
 
 19-Jan-1998 20:02:06.14 tcp_local                  D 1
  adam@sesta.com rfc822;test-list@sesta.com david@varrius.com
  imta/queue/tcp_local/ZZ01ISKND2WS1I90N15M.00
  <01ISKND2H8MS90N15M@sesta.com>
  dns;gw.varrius.com (TCP|206.184.139.12|2788|192.160.253.66|25)
  (gw.varrius.com -- SMTP Sendmail)
  smtp;250 OK.

MTA 記錄 – 傳送至不存在的網域

此範例對嘗試傳送至不存在的網域 (此處為 very.bogus.com) 進行了說明;亦即傳送到未被 MTA 的重寫規則注意到其不存在的、並且被 MTA 匹配到外寄 TCP/IP 通道的網域名稱。此範例假設 MTA 選項設定為 LOG_FILENAME=1LOG_MESSAGE_ID=1

TCP/IP 通道在 DNS 中執行並檢查網域名稱時,DNS 傳回錯誤,指示該名稱不存在。請注意「拒絕」項目 (R),如 (5) 中所示,並且 DNS 傳回一個錯誤 (這不是一個合法網域名稱),如 (6) 中所示。

由於提交郵件後位址被拒絕,MTA 將產生退回郵件給原寄件者。MTA 將讓新拒絕郵件在原寄件者 (1) 中形成佇列,並在刪除原外寄郵件 ((5) 中所示的 R 項目) 之前,將一份副本傳送給 Postmaster (4)。

通知郵件 (如退回郵件) 具有空訊息封 From: 位址,如 (2) 和 (8) 中所示,其中訊息封 From:欄位顯示為空白。由 MTA 產生的退回郵件的初始形成佇列顯示了新通知郵件的郵件 ID,其後跟隨原來郵件的郵件 ID (3)。(此類資訊對於 MTA 並不總是可用,但可用於記錄時,它允許將對應於外寄失敗的郵件的記錄項目與對應於結果通知郵件的記錄項目相關聯。)此類通知郵件在程序通道中形成佇列,該通道轉而又將這些郵件在相應的目標通道中形成佇列 (7)。


範例 21–4 MTA 記錄 – 傳送至不存在的網域


19-JAN-1998 20:49:04 l            tcp_local    E 1
  adam@sesta.com rfc822;user@very.bogus.com user@very.bogus.com
  imta/queue/tcp_local/ZZ01ISKP0S0LVQ94DU0K.00
 <01ISKP0RYMAS94DU0K@SESTA.COM>
 
19-JAN-1998 20:49:33 tcp_local    process      E 1                (1)
 rfc822;adam@sesta.com adam@sesta.com                             (2)
 imta/queue/process/ZZ01ISKP0S0LVQ94DTZB.00
 <01ISKP22MW8894DTAS@SESTA.COM>,<01ISKP0RYMAS94DU0K@SESTA.COM>    (3)

19-JAN-1998 20:49:33 tcp_local    process      E 1                (4)
 rfc822;postmaster@sesta.com postmaster@sesta.com
 imta/queue/process/ZZ01ISKP0S0LVQ94DTZB.00
 <01ISKP22MW8894DTAS@SESTA.COM>,<01ISKP0RYMAS94DU0K@SESTA.COM>
 
19-JAN-1998 20:50:07 tcp_local                  R 1               (5)
 adam@sesta.com rfc822;user@very.bogus.com user@very.bogus.com
 imta/queue/tcp_local/ZZ01ISKP0S0LVQ94DU0K.00
 <01ISKP0RYMAS94DU0K@SESTA.COM>
 Illegal host/domain name found                                   (6)

19-JAN-1998 20:50:08 process      l            E 3                (7)
 rfc822;adam@sesta.com adam                                       (8)
 imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
 <01ISKP22MW8894DTAS@SESTA.COM>
 
19-JAN-1998 20:50:08 process      l            E 3
  rfc822;postmaster@sesta.com postmaster
  imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
 <01ISKP22MW8894DTAS@SESTA.COM>
 
19-JAN-1998 20:50:12 l                         D 3
  rfc822;adam@sesta.com adam
  imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
  <01ISKP22MW8894DTAS@SESTA.COM>
 
19-JAN-1998 20:50:12 l                         D 3
  rfc822;postmaster@sesta.com postmaster
  imta/queue/l/ZZ01ISKP23BUQS94DTYL.00
  <01ISKP22MW8894DTAS@SIROE.COM>

MTA 記錄範例 – 傳送至不存在的遠端使用者

此範例對嘗試傳送至遠端系統上的不正確位址進行了說明。此範例假設 MTA 選項設定為 LOG_FILENAME=1LOG_MESSAGE_ID=1,並且通道選項設定為 LOG_BANNER=1LOG_TRANSPORTINFO=1。請注意 (1) 中所示的拒絕項目 (R)。但與範例 21–4 中的拒絕項目相比,請注意此處的拒絕項目顯示已連線至遠端系統,並且顯示遠端 SMTP 伺服器發出的 SMTP 錯誤代碼 (2) 和 (3)。(2) 中所示資訊的內容是設定通道選項 LOG_BANNER=1LOG_TRANSPORTINFO=1 的結果。


範例 21–5 MTA 記錄 – 傳送至不存在的遠端使用者


20-JAN-1998 13:11:05 l            tcp_local    E 1
  adam@sesta.com rfc822;nonesuch@siroe.com nonesuch@siroe.com
  imta/queue/tcp_local/ZZ01ISLNBB1JOE94DUWH.00
  <01ISLNBAWV3094DUWH@sesta.com>
 
20-JAN-1998 13:11:08 tcp_local    process      E 1
  rfc822;adam@sesta.com adam@sesta.com
  imta/queue/process/ZZ01ISLNBB1JOE94DSGB.00
  <01ISLNBFKIDS94DUJ8@sesta.com>,<01ISLNBAWV3094DUWH@sesta.com>
 
 20-JAN-1998 13:11:08 tcp_local    process      E 1
  rfc822;postmaster@sesta.com postmaster@sesta.com
  imta/queue/process/ZZ01ISLNBB1JOE94DSGB.00
  <01ISLNBFKIDS94DUJ8@sesta.com>,<01ISLNBAWV3094DUWH@sesta.com>
 
20-JAN-1998 13:11:11 tcp_local                  R 1       (1)
  adam@sesta.com rfc822;nonesuch@siroe.com nonesuch@siroe.com
  imta/queue/tcp_local/ZZ01ISLNBB1JOE94DUWH.00 
  <01ISLNBAWV3094DUWH@sesta.com>
  dns;thor.siroe.com
  (TCP|206.184.139.12|2788|192.160.253.66|25)             (2)
  (THOR.SIROE.COM -- Server ESMTP [iMS V5.0 #8694])
  smtp; 553 unknown or illegal user: nonesuch@siroe.com   (3)
 
20-JAN-1998 13:11:12 process      l            E 3
  rfc822;adam@sesta.com adam
  imta/queue/l/ZZ01ISLNBGND1094DQDP.00
  <01ISLNBFKIDS94DUJ8@sesta.com>
 
20-JAN-1998 13:11:12 process      l            E 3
  rfc822;postmaster@sesta.com postmaster
  imta/queue/l/ZZ01ISLNBGND1094DQDP.00
  <01ISLNBFKIDS94DUJ8@sesta.com>
 
20-JAN-1998 13:11:13 l                         D 3
  rfc822;adam@sesta.com adam@sesta.com
  imta/queue/l/ZZ01ISLNBGND1094DQDP.00
  <01ISLNBFKIDS94DUJ8@sesta.com>
 
20-JAN-1998 13:11:13 l                         D 3
  rfc822;postmaster@sesta.com postmaster@sesta.com
  imta/queue/l/ZZ01ISLNBGND1094DQDP.00
  <01ISLNBFKIDS94DUJ8@sesta.com>

MTA 記錄範例 – 拒絕遠端提交郵件的嘗試

此範例對 MTA 拒絕遠端提交郵件的嘗試時所產生的記錄檔項目種類進行了說明。(此範例假設未啟用選擇性 LOG_* 選項,因此項目中僅記錄了基本欄位。請特別注意,啟用 LOG_CONNECTION 選項將導致在此類 J 項目中產生附加資訊欄位。)這種情況下,此範例是針對已透過 ORIG_SEND_ACCESS 對映設定了 SMTP 轉送阻斷 (請參閱配置 SMTP 轉送封鎖) 的 MTA,該對映包含:

ORIG_SEND_ACCESS

! ...numerous entries omitted...
!
   tcp_local|*|tcp_local|*   $NRelaying$ not$ permitted

其中,alan@very.bogus.com 不是內部位址。因此遠端使用者 harold@varrius.com 嘗試透過 MTA 系統轉送到遠端使用者 alan@very.bogus.com 被拒絕。


範例 21–6 MTA 記錄 – 拒絕遠端提交郵件的嘗試


28-May-1998 12:02:23 tcp_local            J 0               (1)
 harold@varrius.com rfc822; alan@very.bogus.com             (2)
 550 5.7.1 Relaying not permitted: alan@very.bogus.com      (3)
  1. 此記錄顯示了 MTA 拒絕遠端提交郵件嘗試的日期與時間。拒絕以 J 記錄表示。(MTA 通道嘗試傳送被拒絕的郵件情況以 R 記錄表示,如範例 21–4範例 21–5 中所示。


    備註 –

    寫入至記錄的最後一個 J 記錄將具有指示,以表明它是預設階段作業中的最後一個。同樣,目前版本 Messaging Server 未對 J 記錄設定數量限制。


  2. 顯示了嘗試的訊息封 From: 和 To: 位址。在此例中無可用的原來訊息封 To: 資訊,因此該欄位為空白。

  3. 此項目包括 MTA 發給遠端 (嘗試的寄件者) 的 SMTP 錯誤訊息。


MTA 記錄範例 – 多次傳送嘗試

此範例對由於無法在第一次嘗試中傳送郵件,因此 MTA 多次嘗試傳送該郵件時所產生的記錄檔項目種類進行了說明。此範例假設選項設定為 LOG_FILENAME=1LOG_MESSAGE_ID=1


範例 21–7 MTA 記錄 – 多次傳送嘗試


15-Jan-1998 10:31:05.18 tcp_internal   tcp_local   E 3          (1)
 adam@hosta.sesta.com rfc822;user@some.org user@some.org
 imta/queue/tcp_local/ZZ01IS3D2ZP7FQ9UN54R.00 
 <01IRUD7SVA3Q9UN2D4@sesta.com>
 
15-Jan-1998 10:31:10.37 tcp_local                  Q 3          (2)
 adam@hosta.sesta.com rfc822;user@some.org user@some.org
 imta/queue/tcp_local/ZZ01IS3D2ZP7FQ9UN54R.00                   (3)
 <01IRUD7SVA3Q9UN2D4@sesta.com>
 TCP active open: Failed connect()    Error: no route to host   (4)
 
     ...several hours worth of entries...

15-Jan-1998 12:45:39.48 tcp_local                  Q 3          (5)
  adam@hosta.sesta.com rfc822;user@some.org user@some.org
  imta/queue/tcp_local/ZY01IS3D2ZP7FQ9UN54R.00                  (6)
  <01IRUD7SVA3Q9UN2D4@sesta.com>
  TCP active open: Failed connect()    Error: no route to host
 
  ...several hours worth of entries...

 15-Jan-1998 16:45:24.72 tcp_local                  Q 3
  adam@hosta.sesta.com rfc822;user@some.org user@some.org
  imta/queue/tcp_local/ZX01IS67NY4RRK9UN7GP.00                  (7)
                   <01IRUD7SVA3Q9UN2D4@sesta.com>
  TCP active open: Failed connect() Error: connection refused   (8)

  ...several hours worth of entries...

 15-Jan-1998 20:45:51.55 tcp_local                  D 3         (9)
  adam@hosta.sesta.com rfc822;user@some.org user@some.org
  imta/queue/tcp_local/ZX01IS67NY4RRK9UN7GP.00
  <01IRUD7SVA3Q9UN2D4@sesta.com>
  dns;host.some.org (TCP|206.184.139.12|2788|192.1.1.1|25)
  (All set, fire away)
  smtp; 250 Ok
  1. 郵件進入 tcp_internal 通道 — 可能來自 POP 或 IMAP 用戶端,也可能來自使用 MTA 作為 SMTP 轉送主機組織中的其他主機;MTA 將其在 tcp_local 外寄通道中形成佇列。

  2. 第一次遞送嘗試失敗,如 Q 項目所示。

  3. ZZ* 檔案名稱可以看出這是第一次傳送嘗試。

  4. TCP/IP 套裝軟體找不到至遠端的路由時,此遞送嘗試將失敗。與範例 21–4 相反,DNS 不反對目標網域名稱 some.org;而「no route to host」錯誤指示在傳送端和接收端之間存在網路問題。

  5. 下一次 MTA 作為定期工作執行時,它再次嘗試遞送,但再次失敗。

  6. 此檔案名稱現在是 ZY*,表示這是第二次嘗試。

  7. 對於第三次失敗嘗試,檔案名稱是 ZX*

  8. 下一次定期工作再次嘗試遞送,遞送失敗,儘管這一次 TCP/IP 套裝軟體未對無法連通遠端 SMTP 伺服器表示不滿,但其實是遠端 SMTP 伺服器不接受連線。(可能遠端修正了其網路問題,但尚未備份其 SMTP 伺服器 — 或其 SMTP 伺服器正忙於處理其他郵件而無法在 MTA 嘗試連線時接受連線。)

  9. 最終郵件被移出佇列。


MTA 記錄 – 透過轉換通道路由內送的郵件

此範例對透過轉換通道路由郵件的情況進行了說明。假定此站點具有 CONVERSIONS 對映表,如:

CONVERSIONS
  IN-CHAN=tcp_local;OUT-CHAN=l;CONVERT   Yes

此範例假設選項設定為 LOG_FILENAME=1LOG_MESSAGE_ID=1


範例 21–8 MTA 記錄 – 透過轉換通道路由內送的郵件


04-Feb-1998 00:06:26.72 tcp_local    conversion   E 9      (1)
  amy@siroe.edu rfc822;bert@sesta.com bert@sesta.com
  imta/queue/conversion/ZZ01IT5UAMZ4QW98518O.00
  <01IT5UALL14498518O@siroe.edu>
 
 04-Feb-1998 00:06:29.06 conversion   l            E 9     (2)
                   amy@siroe.edu rfc822;bert@sesta.com bert
  imta/queue/l/ZZ01IT5UAOXLDW98509E.00  <01IT5STUMUFO984Z8L@siroe.edu>
 
04-Feb-1998 00:06:29.31 conversion                D 9      (3)
 amy@siroe.edu rfc822;bert@sesta.com bert
 imta/queue/conversion/ZZ01IT5UAMZ4QW98518O.00
 <01IT5UALL14498518O@siroe.edu>
 
 04-Feb-1998 00:06:32.62 l                         D 9     (4)
  amy@siroe.edu rfc822;bert@siroe.com bert
  imta/queue/l/ZZ01IT5UAOXLDW98509E.00
  <01IT5STUMUFO984Z8L@siroe.edu>

               
  1. 來自外部使用者 amy@siroe.edu 的郵件傳入,其收件者位址為 l 通道收件者 bert@sesta.com 的位址。但是,CONVERSIONS 對映項目使郵件最初在轉換通道中形成佇列 (而不是直接進入 l 通道)。

  2. 轉換通道執行郵件,並使郵件在 l 通道中形成佇列。

  3. 然後轉換通道可將郵件移出佇列 (刪除舊郵件檔案)。

  4. 最後,l 通道將郵件移出佇列 (傳送該郵件)。


MTA 記錄範例:外寄連線記錄

此範例說明透過 LOG_CONNECTION=3 啟用連線記錄後外寄郵件的記錄輸出。此範例中還假設了 LOG_PROCESS=1LOG_MESSAGE_ID=1LOG_FILENAME=1。 此範例顯示了使用者 adam@sesta.com 將同一郵件 (請注意每個郵件副本的郵件 ID 都相同) 傳送給三個收件者 bobby@hosta.sesta.comcarl@hosta.sesta.comdave@hostb.sesta.com 的情況。此範例假設郵件從標有 (此類通道通常都有標記) single_sys 通道關鍵字的 tcp_local 通道外寄。因此,如 (1)、(2) 和 (3) 中所示,系統將在磁碟上為不同主機名稱的每組收件者分別建立郵件檔案,其中收件者 bobby@hosta.sesta.comcarl@hosta.sesta.com 儲存在同一郵件檔案中,而收件者 dave@hostb.sesta.com 儲存在其他郵件檔案中。


範例 21–9 MTA 記錄:外寄連線記錄


19-Feb-1998 10:52:05.41 1e488.0 l            tcp_local    E 1
 adam@sesta.com rfc822;bobby@hosta.sesta.com bobby@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00                    (1)
  <01ITRF7BDHS6000FCN@SESTA.COM>

19-Feb-1998 10:52:05.41 1e488.0 l            tcp_local    E 1
 adam@sesta.com rfc822;carl@hosta.sesta.com carl@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00                    (2)
   <01ITRF7BDHS6000FCN@SESTA.COM>

19-Feb-1998 10:52:05.74 1e488.1 l            tcp_local    E 1
 adam@sesta.com rfc822;dave@hostb.sesta.com dave@hostb.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7C11FU000FCN.00                    (3)
   <01ITRF7BDHS6000FCN@SESTA.COM>

19-Feb-1998 10:52:10.79 1f625.2.0 tcp_local    -            O    (4)
 TCP|206.184.139.12|5900|206.184.139.66|25
 SMTP/hostb.sesta.com/mailhub.sesta.com                          (5)
 
19-Feb-1998 10:52:10.87 1f625.3.0 tcp_local    -            O    (6)
 TCP|206.184.139.12|5901|206.184.139.70|25
 SMTP/hosta.sesta.com/hosta.sesta.com                            (7)

19-Feb-1998 10:52:12.28 1f625.3.1 tcp_local                  D 1
 adam@sesta.com rfc822;bobby@hosta.sesta.com bobby@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00
  <01ITRF7BDHS6000FCN@SESTA.COM>
 hosta.sesta.com dns;hosta.sesta.com                            (8)
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 (hosta.sesta.com -- Server ESMTP [iMS V5.0 #8790])
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 smtp;250 2.1.5 bobby@hosta.sesta.com and options OK.

19-Feb-1998 10:52:12.28 1f625.3.1 tcp_local                  D 1
 adam@sesta.com rfc822;carl@hosta.sesta.com carl@hosta.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7BO388000FCN.00
  <01ITRF7BDHS6000FCN@SESTA.COM>
 hosta.sesta.com dns;hosta.sesta.com
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 (hosta.sesta.com -- Server ESMTP [iMS V5.0 #8790])
 (TCP|206.184.139.12|5901|206.184.139.70|25)
 smtp;250 2.1.5 carl@hosta.sesta.com and options OK.

19-Feb-1998 10:52:12.40 1f625.3.2 tcp_local      -            C  (9)
 TCP|206.184.139.12|5901|206.184.139.70|25
 SMTP/hosta.sesta.com/hosta.sesta.com

19-Feb-1998 10:52:13.01 1f625.2.1 tcp_local                  D 1
 adam@sesta.com rfc822;dave@hostb.sesta.com dave@hostb.sesta.com
 imta/queue/tcp_local/ZZ01ITRF7C11FU000FCN.00
  <01ITRF7BDHS6000FCN@SESTA.COM>
 mailhub.sesta.com dns;mailhub.sesta.com
 (TCP|206.184.139.12|5900|206.184.139.66|25)
 (MAILHUB.SESTA.COM -- Server ESMTP [iMS V5.0 #8694])
 (TCP|206.184.139.12|5900|206.184.139.66|25)
 smtp;250 2.1.5 dave@hostb.sesta.com and options OK.

19-Feb-1998 10:52:13.05 1f625.2.2 tcp_local      -            C  (10)
                  
 TCP|206.184.139.12|5900|206.184.139.66|25
 SMTP/hostb.sesta.com/mailhub.sesta.com

               
  1. 郵件已形成佇列準備傳送給第一個收件者...

  2. ....準備傳送給第二個收件者...

  3. ....準備傳送給第三個收件者。

  4. 設定 LOG_CONNECTION=3 將使 MTA 寫入此項目。減號 - 表示此項目指外寄連線。O 表示此項目對應於連線的開啟作業。同時請注意,儘管此開啟作業由執行緒 2 和執行緒 3 來執行,但由於多執行緒的 TCP/IP 通道使用同一程序來開啟這些單獨的連線,因此此處的程序 ID 相同 (均為 1f625)。

  5. 由於要連線到兩個不同的遠端系統,因此不同執行緒中的多執行緒 SMTP 用戶端將開啟與每個系統的連線—第一個顯示在本項目中,第二個顯示在 7 中。項目的此部分顯示了傳送和目標 IP 號碼以及連接埠號碼,並顯示了初始主機名稱和透過進行 DNS 查詢找到的主機名稱。在 SMTP/initial-host/dns-host 陳述式中,請注意初始主機名稱和在初始主機名稱上執行 DNS MX 記錄查詢後所使用的主機名稱的顯示:mailhub.sesta.com 顯然是 hostb.sesta.com 的 MX 伺服器。

  6. 多執行緒的 SMTP 用戶端在不同的執行緒 (儘管程序相同) 中開啟與第二個系統的連線。

  7. 由於要連線到兩個不同的遠端系統,不同執行緒中的多執行緒 SMTP 用戶端將開啟與每個系統的連線 — 第二個顯示在本項目中,第一個顯示在上面的 5 中。項目的此部分顯示了傳送和目標 IP 號碼以及連接埠號碼,並顯示了初始主機名稱和透過進行 DNS 查詢找到的主機名稱。在此範例中,可以明顯看到系統 hosta.sesta.com 本身可直接接收郵件。

  8. 除了產生特定連線項目外,LOG_CONNECTION=3 還可將連線相關資訊包含在一般郵件項目中,如此處所示。

  9. 設定 LOG_CONNECTION=3 將使 MTA 寫入此項目。所有郵件 (此範例中為 bobby 和 carl 郵件) 都被移出佇列後,系統將關閉連線,如此項目中的 C 所示。


MTA 記錄範例:內送連線記錄

此範例說明透過 LOG_CONNECTION=3 啟用連線記錄後,內送 SMTP 郵件的記錄輸出。


範例 21–10 MTA 記錄 – 內送連線記錄


19-Feb-1998 17:02:08.70 tcp_local    +            O          (1)
 TCP|206.184.139.12|25|192.160.253.66|1244 SMTP              (2)

19-Feb-1998 17:02:26.65 tcp_local    l             E 1
 service@siroe.com rfc822;adam@sesta.com adam
 THOR.SIROE.COM (THOR.SIROE.COM [192.160.253.66])            (3)

 19-Feb-1998 17:02:27.05 tcp_local    +             C        (4)
                   TCP|206.184.139.12|25|192.160.253.66|1244 SMTP
 
19-Feb-1998 17:02:31.73 l                          D 1
  service@siroe.com rfc822;adam@sesta.com adam
  1. 遠端系統開啟一個連線。字元 O 表示此項目與連線的開啟作業有關;字元 + 表示此項目與內送連線有關。

  2. 顯示連線的 IP 號碼和連接埠。在此項目中,接收系統 (建立記錄檔項目的系統) 的 IP 位址為 206.184.139.12 並且連線到連接埠 25;傳送系統的 IP 位址為 192.160.253.66 並從連接埠 1244 傳送。

  3. 在從內送 TCP/IP 通道 (tcp_local) 形成佇列到 l 通道收件者的郵件項目中,請注意由於啟用了 LOG_CONNECTION=3 而包含預設值以外的資訊。特別是,傳送系統在其 HELO 或 EHLO 線上使用的名稱、在連線 IP 號碼上以 DNS 反向查詢找到的傳送系統名稱,以及傳送系統的 IP 位址均被記錄下來;請參閱第 12 章, 配置通道定義運作方式。

  4. 內送連線已關閉。字元 C 表示此項目與連線的關閉作業有關;字元 + 表示此項目與內送連線有關。


啟用派送程式除錯

派送程式錯誤和除錯輸出 (如果啟用) 被寫入 MTA 記錄目錄中的 dispatcher.log 檔案。在 msg_svr_base/imta/dispatcher.cnf 檔案中指定派送程式配置資訊。預設配置檔案在安裝時建立,您無需進行變更即可使用。但是,如果出於安全性或效能原因,需要修改預設配置檔案,則可以透過編輯 dispatcher.cnf 檔案來完成修改。

表 21–3 派送程式除錯位元

位元 

 

十六進制值 

十進制值 

用法 

 

x 00001 

基本服務派送程式主模組除錯。 

x 00002 

附加服務派送程式主模組除錯。 

x 00004 

服務派送程式配置檔案記錄。 

x 00008 

基本服務派送程式其他除錯。 

x 00010 

16 

基本服務除錯。 

x 00020 

32 

附加服務除錯。 

x 00040 

64 

程序相關服務除錯。 

x 00080 

128 

未使用。 

x 00100 

256 

基本服務派送程式和程序通訊除錯。 

x 00200 

512 

附加服務派送程式和程序通訊除錯。 

10 

x 00400 

1024 

資料封包級別通訊除錯。 

11 

x 00800 

2048 

未使用。 

12 

x 01000 

4096 

基本工作程序除錯。 

13 

x 02000 

8192 

附加工作程序除錯。 

14 

x 04000 

16384 

其他工作程序除錯,特別是連線切換。 

15 

x 08000 

32768 

未使用。 

16 

x 10000 

65536 

基本工作程序到服務派送程式 I/O 除錯。 

17 

x 20000 

131072 

附加工作程序到服務派送程式 I/O 除錯。 

20 

x 100000 

1048576 

基本統計資料除錯。 

21 

x 200000 

2097152 

附加統計資料除錯。 

24 

x 1000000 

16777216 

將 PORT_ACCESS 拒絕記錄到 dispatcher.log 檔案中。 

Procedure啟用派送程式錯誤除錯輸出

步驟
  1. 編輯 dispatcher.cnf 檔案。

  2. DEBUG 選項設定為 -1。

    還可以設定邏輯變數或環境變數 IMTA_DISPATCHER_DEBUG (UNIX),該變數以十六進位將 32 位元除錯遮罩定義為值 FFFFFFFF。上表說明每個位元的意義。

Procedure設定派送程式參數 (Solaris)

派送程式配置檔案中提供的派送程式服務將影響各種系統參數的需求。系統的堆疊大小 (datasize) 必須能夠滿足派送程式的執行緒堆疊使用需求。

步驟
  1. 若要顯示 堆疊大小 (亦即預設datasize),請執行以下指令之一:

    csh 指令:


    # limit
    

    ksh 指令


    # ulimit -a
    

    Solaris 公用程式


    # sysdef
    
  2. 對每個派送程式服務計算 STACKSIZE*MAX_CONNS,然後把每項服務的計算值相加。系統的堆疊大小必須至少是以上數值的兩倍。