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

字元集標記與八位元資料

關鍵字:charset7charset8charsetescsevenbiteightbiteightnegotiateeightstrict

字元集標記

MIME 規格提供標記一般文字郵件中所使用的字元集的機制。具體來說,可指定 charset= 參數做為 Content-type: 標頭行的一部分。MIME 中定義了多種字元集名稱,包括 US-ASCII (預設)、ISO-8859-1 和 ISO-8859-2,後續還定義了許多其他字元集。

某些現有系統與使用者代理程式不提供產生上述字元集標籤的機制;因此,有些一般文字郵件可能不會被正確標記。charset7charset8charsetesc 通道關鍵字提供針對各通道的機制,可指定要在缺少字元集標記的郵件標頭中插入的字元集名稱。 每個關鍵字都需要單一引數,以提供字元集名稱。這些名稱的有效性不會被檢查。但請注意,只能對 MTA 表目錄字元集定義檔案 charsets.txt 中所指定的字元集執行字元集轉換。如有可能,應使用該檔案中定義的名稱。

如果郵件僅包含七位元字元,則使用 charset7 字元集名稱;如果郵件包含八位元資料,則使用 charset8 字元集名稱;如果在僅包含七位元資料的郵件中碰巧還包含退出字元,則使用 charsetesc。如果未指定適當的關鍵字,則不會在 Content-type: 標頭行中插入任何字元集名稱。

請注意,charset8 關鍵字還控制郵件標頭中 (8 位元資料對於該標頭絕對為非法) 8 位元字元的 MIME 編碼。如果未指定 charset8 值,MTA 通常會將在郵件標頭中遇到的所有 (非法) 8 位元資料進行 MIME 編碼,將其標記為 UNKNOWN 字元集。

這些字元集規格永遠不會置換現有標籤,即如果郵件已有字元集標籤或郵件是文字以外的其他類型,則這些字元集規格都無效。通常適合將 MTA 本機通道標記為以下形式:


l ... charset7 US-ASCII charset8 ISO-8859-1 ...
hostname

如果郵件中沒有 Content-type 標頭,則會加入該標頭。如果沒有 MIME-version: 標頭行,此關鍵字還會加入該標頭行。

對於接收使用日語或韓語字元集、且包含退出字元之未標記郵件的通道,charsetesc 關鍵字極其有用。

八位元資料

某些傳輸會限制使用序數值大於 127 (十進位) 的字元。最明顯的是,某些 SMTP 伺服器會刪除高位元,並因此竄改使用此八位元範圍內字元的郵件。

Messaging Server 提供對這類郵件自動編碼的功能,使棘手的八位元字元不會直接顯示在郵件中。透過指定 sevenbit 關鍵字,此編碼可套用於在給定通道上形成佇 列的所有郵件。如果不存在此類限制,則應將通道標記為 eightbit

SMTP 協定不允許使用 eightbit,「除非遠端 SMTP 伺服器明確表示支援允許使用 eightbit 的 SMTP 延伸」。某些傳輸 (例如延伸的 SMTP) 可以實際支援某種協商形式,以確定是否可以傳輸八位元字元。因此,極力建議使用 eightnegotiate 關鍵字來指示通道在協商失敗時對郵件進行編碼。這是所有通道的預設;不支援協商的通道只假定傳輸能夠處理八位元資料。

eightstrict 關鍵字告知 Messaging Server 拒絕所有標頭包含非法八位元資料的內送郵件。