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

字元集轉換

如果 MTA 探測並發現將要重新格式化的郵件,則會開始檢查郵件的各個部分。一旦發現任何文字部分,便使用其字元集參數產生第二種探測。僅當 MTA 檢查並發現可能需要進行轉換時,才會執行第二種探測。第二種探測中的輸入字串如下所示:

IN-CHAN=in-channel;OUT-CHAN=out-channel;IN-CHARSET=in-char-set

in-channelout-channel 均如前所述,而 in-char-set 為與特定問題部分關聯的字元集之名稱。如果第二種探測未發現相符項目,則不執行任何字元集轉換 (即使根據第一種探測中的相符關鍵字可以執行郵件重新格式化 [例如,變更 MIME 結構],亦不執行轉換)。如果存在相符項目,則產生以下形式的字串:

OUT-CHARSET=out-char-set

其中,out-char-set 指定 in-char-set 應轉換成的字元集之名稱。請注意,這兩種字元集均必須在字元集定義表 charsets.txt 中定義,該表位於 MTA 表格目錄中。如果此檔案中對該字元集的定義不正確,則不會執行任何轉換。但這通常不是問題,因為此檔案會定義數百種字元集,如今使用的大多數字元集都會在此檔案中定義。請參閱 imsimta chbuild (UNIX 和 NT) 公用程式的說明,以取得有關 charsets.txt 檔案的詳細資訊。

如果符合所有的條件,MTA 將開始建立字元集對映並執行轉換。轉換後的郵件部分會使用其轉換成的字元集名稱重新標示。

字元集轉換對映已進行了延伸,以提供數種其他功能:


範例 13–2 將 ISO-8859-1 和 UTF-8 互相轉換

假設在本機上使用 ISO-8859-1,但是在網際網路上使用時需要轉換為 UTF-8。具體來說,假定透過 tcp_localtcp_internal 連線網際網路,並且內部郵件在 ims-ms 中發出並被傳送。如下所示的 CHARSET-CONVERSION 表顯示了此類轉換。請注意,每個 IN-CHAN 項目都必須處於單個行中。使用反斜線 (\) 來把各行分開。


CHARSET-CONVERSION

 IN-CHAN=tcp_internal;OUT-CHAN=tcp_local;CONVERT               Yes
 IN-CHAN=tcp_local;OUT-CHAN=tcp_internal;CONVERT               Yes
 IN-CHAN=tcp_local;OUT-CHAN=ims-ms;CONVERT                     Yes
 IN-CHAN=*;OUT-CHAN=*;CONVERT                                  No
 IN-CHAN=tcp_internal;OUT-CHAN=tcp_local;IN-CHARSET=ISO-8859-1 OUT-CHARSET=UTF-8
 IN-CHAN=tcp_local;OUT-CHAN=tcp_internal;IN-CHARSET=UTF-8 OUT-CHARSET=ISO-8859-1
 IN-CHAN=tcp_local;OUT-CHAN=ims-ms;IN-CHARSET=UTF-8       OUT-CHARSET=ISO-8859-1


範例 13–3 EUC-JP 與 ISO-2022-JP 之間的相互轉換

如下所示的 CHARSET-CONVERSION 表指定了 EUC-JP 的本機使用和基於 ISO 2022 的 JP 碼之間的轉換。


CHARSET-CONVERSION

  IN-CHAN=ims-ms;OUT-CHAN=ims-ms;CONVERT                  No
  IN-CHAN=tcp_internal;OUT-CHAN=ims-ms;CONVERT            No
  IN-CHAN=tcp_internal;OUT-CHAN=tcp_internal;CONVERT      No
  IN-CHAN=tcp_internal;OUT-CHAN=*;CONVERT                 Yes
  IN-CHAN=*;OUT-CHAN=ims-ms;CONVERT                       Yes
  IN-CHAN=*;OUT-CHAN=tcp_internal;CONVERT                 Yes
  IN-CHAN=tcp_internal;OUT-CHAN=*;IN-CHARSET=EUC-JP      OUT-CHARSET=ISO-2022-JP
  IN-CHAN=*;OUT-CHAN=ims-ms;IN-CHARSET=ISO-2022-JP        OUT-CHARSET=EUC-JP
  IN-CHAN=*;OUT-CHAN=tcp_internal;IN-CHARSET=ISO-2022-JP  OUT-CHARSET=EUC-JP