了解內容轉換
適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3
上次修改主題的時間: 2016-11-28
內容轉換就是針對每位收件者來正確格式化郵件的處理程序。 是否在郵件上執行內容轉換,取決於所處理之郵件的目的地和格式。傳送到 Microsoft Exchange Server 組織中收件者的郵件,不需要任何內容轉換。 只有傳送到外部收件者的郵件,才可能需要內容轉換。
在 Exchange Server 2010 組織中,內容轉換是由已安裝 Hub Transport server role 之伺服器上的分類程式來處理。每一個郵件的分類是在新抵達的郵件放到提交佇列中之後進行。 在郵件放入傳遞佇列之前,除了收件者解析和路由解析之外,還會對郵件執行內容轉換。 如果單一郵件包含多位收件者,內容轉換會為每一位郵件收件者決定適當的編碼。 邊際傳輸伺服器上會進行縮寫的分類,其中不包含內容轉換作業。
目錄
了解電子郵件的結構
Exchange 2010 和 Outlook 郵件格式
內容轉換的元素
儲存區驅動程式執行的內容轉換
要尋找與內容轉換相關的管理工作嗎? 請參閱 管理傳輸伺服器。
了解電子郵件的結構
您必須了解電子郵件的結構,才能更深入了解內容轉換。 SMTP 郵件是根據 7 位元 US-ASCII 純文字來撰寫和傳送電子郵件。 標準的 SMTP 郵件是由下列元素組成:
郵件信封 RFC 2821 中會定義郵件信封。郵件信封包含傳輸和傳遞郵件所需的資訊。 收件者絕對看不到郵件信封,因為郵件信封是在郵件傳輸過程中產生,實際上不是郵件內容的一部分。
郵件內容 RFC 2822 中會定義郵件內容。郵件內容是由下列元素組成:
郵件標頭 郵件標頭是標頭欄位的集合。 標頭欄位依序由欄位名稱、冒號字元 ( : )、欄位內文及歸位/換行 (CR/LF) 字元組合所組成。
欄位名稱必須由冒號字元 ( : ) 以外的可列印 US-ASCII 文字字元組成。 尤其是,允許具有 33 至 57 和 59 至 126 之值的 ASCII 字元。
欄位內文可由任何 US-ASCII 字元組成,但歸位字元 (CR) 和換行字元 (LF) 除外。 不過,在 *「標頭摺疊」*中使用時,欄位內文可包含 CR/LF。 標頭摺疊就是將單一標頭欄位內文切割成多行,如 RFC 2822 的第 2.2.3 節所述。RFC 2822 的第 3 節和第 4 節則會說明其他的欄位內文語法需求。
郵件內文 郵件內文就是郵件標頭後面出現的 US-ASCII 文字字元行的集合。 郵件標頭和郵件內文是以結尾是 CR/LF 字元組合的空白行隔開。 郵件內文是選用的。 郵件內文的任何文字行必須少於 998 個字元。 CR 和 LF 字元必須一起出現來表示行尾。
當 SMTP 郵件包含非 US-ASCII 純文字的元素時,郵件必須編碼以保留這些元素。 MIME 標準定義了將郵件中非文字之內容編碼的方法。 MIME 允許其他字元集的文字、非文字附件、Multipart 郵件內文及其他字元集的標頭欄位。 MIME 定義於 RFC 2045、RFC 2046、RFC 2047、RFC 2048 及 RFC 2077。MIME 定義可指定其他郵件屬性的郵件欄位集合。 下表說明一些重要的 MIME 標頭欄位。
重要的 MIME 標頭欄位
標頭欄位名稱 | 預設值 | 描述 |
---|---|---|
MIME-Version |
1.0 |
此標頭欄位是 MIME 格式的郵件中第一個出現的 MIME 標頭欄位。 此標頭欄位出現於其他標準 RFC 2822 標頭欄位之後,但在其他任何 MIME 標頭欄位之前。 MIME 感知電子郵件用戶端會使用此標頭欄位,以識別 MIME 編碼的郵件。 缺少此標頭欄位時,MIME 感知電子郵件用戶端會將郵件視為純文字。 |
Content-Type |
text/plain |
此標頭欄位可識別郵件內容的媒體類型,如 RFC 2046 所述。媒體類型由類型、子類型及一或多個選用的參數 (例如用來定義 MIME 字元編碼的 charset= 參數) 組成。 「x-」開頭代表非標準類型。 "vnd." 開頭的子類型則專門代表廠商。 網際網路指定編號機構 (IANA) 維護了一份已註冊的媒體類型清單。 如需相關資訊,請參閱 MIME 媒體類型 (英文)。 Multipart 媒體類型允許以不同媒體類型所定義的區段,讓相同的郵件中包含多個郵件部分。 一些 Content-Type 欄位值包括 text/plain、text/html、multipart/mixed 和 multipart/alternative。 |
Content-Transfer-Encoding |
7bit |
此標頭欄位可以說明下列郵件資訊:
MIME 郵件的 Content-Transfer-Encoding: 標頭欄位可有多個值。 當 Content-Transfer-Encoding: 標頭欄位出現在郵件標頭內時,將會套用到整個郵件內文。 當 Content-Transfer-Encoding: 標頭欄位出現在 Multipart 郵件的其中一部分時,則只會套用到該郵件部分。 對郵件內文資料套用編碼演算法時,郵件內文資料會轉換為 US-ASCII 純文字。 此轉換可讓郵件通過僅支援 US-ASCII 文字郵件的舊型 SMTP 郵件伺服器。 指出郵件內文使用之編碼演算法的 Content-Transfer-Encoding: 標頭欄位的值如下:
在相同的郵件中,通常不會使用多種編碼演算法。 當郵件內文未使用編碼演算法時,Content-Transfer-Encoding: 標頭欄位就只會識別郵件內文資料的目前狀況。 下列 Content-Transfer-Encoding: 標頭欄位值表示郵件內文未使用編碼演算法:
在相同的 Multipart 郵件中,7bit、8bit 及 Binary 這三個值絕對不會同時出現。 這些值彼此互斥。 Quoted-printable 或 Base64 值可能會出現在 7bit 或 8bit Multipart 郵件內文中,但絕不會出現在 Binary 郵件內文中。 如果 Multipart 郵件內文包含由 7bit 和 8bit 內容所組成的不同部分,則整個郵件會歸類為 8bit。 如果 Multipart 郵件內文包含由 7bit、8bit 及 Binary 內容所組成的不同部分,則整個郵件就會歸類為 Binary。 |
Content-Disposition |
Attachment |
此標頭欄位 (於 RFC 2183 中有描述) 可指示已啟用 MIME 的電子郵件用戶端如何顯示附件檔。此欄位的值可能為 Inline 或 Attachment。 當此欄位的值是 Inline 時,附件會顯示在郵件內文中。 當此欄位的值是 Attachment 時,附件檔會顯示為一般附件,與郵件內文分開。 值為 Attachment 時還有其他參數可用,例如 Filename、Creation-date 及 Size。 |
Exchange 2010 和 Outlook 郵件格式
下列清單說明 Exchange 2010 和 Microsoft Outlook 中可用的基本郵件格式:
純文字 純文字郵件只使用 US-ASCII 文字,如 RFC 2822 所述。郵件無法包含不同字型或其他文字格式。 純文字郵件可使用下列兩種格式:
郵件標頭和郵件內文由 US-ASCII 文字組成。 附件必須以 Uuencode 編碼。 Uuencode 代表「Unix 對 Unix 編碼」,定義一種編碼演算法,可使用 US-ASCII 文字字元將二進位附件儲存在電子郵件的內文中。
郵件實際上以 Content-Type 值 text/plain 進行 MIME 編碼,而 Multipart 郵件的文字部分則以 Content-Transfer-Encoding 值 7bit 編碼。 任何郵件附件的編碼都使用 Quoted-printable 或 Base64 編碼。 依預設,當您在 Outlook 中撰寫和傳送純文字郵件時,郵件實際上會以 Content-Type 值 text/plain 來進行 MIME 編碼。
HTML HTML 郵件支援文字格式、背景影像、表格、項目符號及其他圖形元素。 根據定義,HTML 格式的郵件必須經過 MIME 編碼,才能保留這些格式元素。
RTF 格式 RTF 支援文字格式及其他圖形元素。 RTF 與傳輸中立封裝格式 (TNEF) 同義。 TNEF 和 RTF 可以交替使用。
只有 Outlook 和少數其他 MAPI 電子郵件用戶端能夠判讀 RTF 郵件。MAPI 是 Microsoft 開發的訊息結構,可讓多支應用程式透過各種硬體平台與不同訊息系統互動。MAPI 建立在元件物件模型 (COM) 架構上。對於執行 Outlook 且已安裝 Mailbox server role 的電腦上的信箱,Exchange 2010 使用 MAPI 與這些信箱進行通訊。
RTF 郵件格式和 MicrosoftWord 中可用的 RTF 文件格式完全不同。
TNEF TNEF 是 Microsoft 專門用來封裝 MAPI 郵件內容的格式。 TNEF 郵件包含一個純文字版的郵件,以及一個包裝原始格式版本郵件的附件。 此附件通常名為 Winmail.dat。Winmail.dat 附件包含下列資訊:
原始格式版本的郵件,例如包括字型、文字大小及文字色彩
OLE 物件,例如包括內嵌圖片或內嵌 MicrosoftOffice 文件
特殊的 Outlook 功能,例如包括自訂表單、投票按鈕或會議邀請
原始郵件中的一般郵件附件
產生的純文字郵件可以用下列格式呈現:
RFC 2822 相容郵件,只由 US-ASCII 文字及 Uuencode 編碼的 Winmail.dat 附件組成
含有 Winmail.dat 附件的 Multipart MIME 編碼郵件
可完全判讀 TNEF 的 MAPI 相容電子郵件用戶端 (例如 Outlook) 可以處理 Winmail.dat 附件並顯示原始郵件內容,但絕不會顯示 Winmail.dat 附件。 無法判讀 TNEF 的電子郵件用戶端,可透過下列任何方式來呈現 TNEF 郵件:
顯示純文字版的郵件,且郵件包含附件 Winmail.dat、Win.dat 或其他通稱,例如 Attnnnnn.dat 或 Attnnnnn.eml,其中的 nnnnn 預留位置代表隨機數字。
顯示純文字版的郵件。 忽略或移除 TNEF 附件。 結果為純文字郵件。
可判讀 TNEF 的郵件伺服器,可設定為從內送郵件中移除 TNEF 附件。 結果為純文字郵件。另外,有些電子郵件用戶端 (例如 Microsoft Outlook Express) 可能無法判讀 TNEF,但可辨識並忽略 TNEF 附件。 結果為純文字郵件。
有協力廠商公用程式可以協助轉換 Winmail.dat 附件。
Exchange 2010、Exchange 2007、Exchange 2003、Exchange 2000 與 Exchange Server 5.5 版 都可以判讀 TNEF。TNEF 郵件會透過標準的 DATA 命令動詞在 SMTP 郵件伺服器之間傳送。 Exchange 會根據下列情況自動使用 TNEF:
Exchange 2003 如果 Exchange 組織使用混合模式,對於在不同路由群組中的 Exchange 伺服器之間傳送的郵件,將會使用 TNEF。
Exchange 2000 在不同路由群組中於 Exchange 伺服器之間傳送的郵件,會使用 TNEF。
摘要傳輸中立封裝格式 (STNEF) STNEF 等同於 TNEF。 不過,STNEF 郵件和 TNEF 郵件的編碼方式不同。 尤其,STNEF 郵件一律為 MIME 編碼,且 Content-Transfer-Encoding 值一律為 Binary。 因此,郵件不會以純文字呈現,且郵件的內文也不含明確的 Winmail.dat 附件。 整個郵件只使用二進位資料來呈現。 Content-Transfer-Encoding 值為 Binary 的郵件,只能在支援且通告 BINARYMIME 和 CHUNKING SMTP 延伸模組 (如 RFC 3030 中所定義) 的 SMTP 郵件伺服器之間傳送。郵件一律使用 BDAT 命令在 SMTP 郵件伺服器之間傳送,而非使用標準的 DATA 命令。
Exchange 2010、Exchange 2007、Exchange 2003 以及 Exchange 2000 都可以判讀 STNEF。當下列條件成立時,Exchange 會自動使用 STNEF:
Exchange 2010 對於在組織內的 Exchange 伺服器之間傳送的所有郵件,會使用 STNEF。
Exchange 2007 對於在組織內的 Exchange 伺服器之間傳送的所有郵件,會使用 STNEF。
Exchange 2003 如果 Exchange 組織使用原生模式,對於在組織內的 Exchange 伺服器之間傳送的所有郵件,將會使用 STNEF。
Exchange 2000 對於在相同路由群組中的 Exchange 伺服器之間傳送的郵件,會使用 STNEF。 對於在不同路由群組中 Exchange 的伺服器之間傳送的郵件,有一個未受支援的 Hotfix 也可以讓 Exchange 2000 使用 STNEF。
Exchange 絕不會將 STNEF 郵件傳送給外部收件者。 只有 TNEF 郵件可傳送給 Exchange 組織外的收件者。
內容轉換的元素
內容轉換就是針對每一個外部收件者來正確格式化郵件的動作。 此轉換是由 Hub Transport Server 上的分類程式執行。
您在 Exchange 組織中可設定的內容轉換選項可分為下列幾類來說明:
TNEF 轉換選項 這些轉換選項指定是否該從離開 Exchange 組織的郵件中保留或移除 TNEF。
郵件編碼選項 這些選項指定郵件編碼選項,例如 MIME 和非 MIME 字元集、郵件編碼及附件格式。
這些轉換和編碼選項彼此獨立。 例如,TNEF 郵件是否可離開 Exchange 組織,無關於這些郵件的 MIME 編碼設定或純文字編碼設定。
您可以在 Exchange 組織的各種層級指定內容轉換,如下列清單所述:
遠端網域設定 遠端網域定義的設定,可讓外寄郵件在 Exchange 2010 組織和 Active Directory 樹系外的網域之間傳送。 即使沒有為特定網域建立遠端網域項目,原本就有一個預先定義的遠端網域稱為 Default,可用於所有遠端位址空間 ( * )。
郵件使用者和郵件連絡人設定 郵件使用者類似郵件連絡人—兩者都有外部電子郵件地址,且包含 Exchange 組織以外的人員資訊。 主要的差別在於郵件使用者擁有可用來登入 Active Directory 網域,並且已授與權限可存取資源的安全性範圍。
Outlook 設定 在 Outlook 中,可讓您設定郵件的格式和編碼選項,如下列清單所述:
郵件格式 您可以為所有郵件設定預設郵件格式。 在撰寫特定郵件時,也可以覆寫預設郵件格式。
網際網路郵件格式 您可以控制是否將 TNEF 郵件傳送給遠端收件者,或是否要先轉換為更相容的格式。 對於傳送給遠端收件者的郵件,您也可以指定各種郵件編碼選項。 對於傳送給 Exchange 組織中收件者的郵件,這些設定則不適用。
網際網路收件者郵件格式 您可以控制是否將 TNEF 郵件傳送給特定收件者,或是否要先轉換為更相容的格式。 您可以為 [連絡人] 資料夾中的特定連絡人設定轉換選項,也可以在撰寫郵件時,覆寫 [收件者]、[副本] 或 [密件副本] 欄位中特定收件者的轉換選項。 Exchange 組織中的收件者無法使用這些轉換選項。
網際網路收件者郵件編碼選項 您可以為 [連絡人] 資料夾中的特定連絡人設定 MIME 或純文字編碼選項,也可以在撰寫郵件時,覆寫 [收件者]、[副本] 或 [密件副本] 欄位中特定收件者的轉換選項。 Exchange 組織中的收件者無法使用這些轉換選項。
國際選項 您可以控制郵件使用的字元集。
TNEF 轉換選項
您可以指定下列層級的 TNEF 轉換選項:
遠端網域設定
郵件使用者和郵件連絡人設定
Outlook 設定,包括:
郵件格式
網際網路郵件格式
網際網路收件者郵件格式
如需詳細資訊,請參閱 TNEF 轉換選項。
郵件編碼選項
您可以指定下列層級的郵件選項:
遠端網域設定
郵件使用者和郵件連絡人設定
Outlook 設定,包括:
郵件格式
網際網路郵件
網際網路收件者郵件格式
郵件字元集編碼選項
如需詳細資訊,請參閱郵件編碼選項。
儲存區驅動程式執行的內容轉換
儲存區驅動程式也會執行內容轉換。 儲存區驅動程式位於 Hub Transport Server,可在 Mailbox Server 和提交佇列之間傳輸郵件。 尤其,儲存區驅動程式可將郵件從寄件者的 [寄件匣] 傳輸到 Hub Transport Server 上的提交佇列,也可將郵件從 Hub Transport Server 上的提交佇列傳輸到收件者的 [收件匣]。 儲存區驅動程式會從 MAPI 轉換所有外寄郵件,也會將所有內送郵件轉換為 MAPI。 內容轉換追蹤可擷取這些儲存區驅動程式的轉換失敗。
如需相關資訊,請參閱內容轉換追蹤。
© 2010 Microsoft Corporation. 著作權所有,並保留一切權利。