如果 MTA 探測並發現將要重新格式化的郵件,則會開始檢查郵件的各個部分。一旦發現任何文字部分,便使用其字元集參數產生第二種探測。僅當 MTA 檢查並發現可能需要進行轉換時,才會執行第二種探測。第二種探測中的輸入字串如下所示:
IN-CHAN=in-channel;OUT-CHAN=out-channel;IN-CHARSET=in-char-set
in-channel 和 out-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 將開始建立字元集對映並執行轉換。轉換後的郵件部分會使用其轉換成的字元集名稱重新標示。
字元集轉換對映已進行了延伸,以提供數種其他功能:
可以在對映項目的輸出範本中指定 IN-CHARSET 選項。如果存在,這將置換編碼文字中指定的字元集。
可以指定接受整數 0 或 1 的 RELABEL-ONLY 選項。如果此選項值為 1,則 OUT-CHARSET 僅替代 IN-CHARSET﹔不執行任何重新標記作業。
如果使用 IN-CHARSET 選項將輸入字元集設定為 *,則此字元集將被「查看」以確定適當的標籤。
假設在本機上使用 ISO-8859-1,但是在網際網路上使用時需要轉換為 UTF-8。具體來說,假定透過 tcp_local 和 tcp_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 |
如下所示的 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 |