MIME 訊息
MIME 訊息由資料和 meta 資料組成。 MIME meta 資料由 HTTP 樣式標頭和 MIME 界限定界字元組成。
MIME 標頭
每一個標頭都是一行以冒號區隔的名稱/值配對。 ASCII 序列 <CR><LF> 會終止行。 這些標頭的序列 (稱為標頭區塊) 以空白行終止: <CR><LF><CR><LF>。 此 HTTP 樣式的任何標頭都可以出現在 MIME 文件中。 部分一般 MIME 標頭在 MIME 標準標頭欄位中說明。
內容類型
唯一必須呈現的標頭是 Content-Type 標頭。 此標頭指定訊息中資料的類型。 如果內容類型值以 multipart
開頭,則訊息是多組件 MIME 訊息。 對於多組件訊息, Content-Type 標頭還必須包含一個界限屬性,以提供用來定界訊息組件的文字。 每一個 MIME 組件都有自己的內容類型欄位,用來指定組件中的資料類型。 這也可以是多組件,容許多組件訊息形成巢狀。 具有任何其他內容類型值的 MIME 組件會作為 BLOB 資料來處理。
如果透過 HTTP 傳送 MIME 文件,則內容類型標頭會出現在 HTTP 標頭區塊中,而不是 MIME 訊息內文中。 因此,整合節點會將 Content-Type 標頭的值管理為邏輯樹狀結構 Properties 資料夾中的 ContentType 內容。 這可讓 MIME 剖析器取得透過 HTTP 接收之 MIME 文件的內容類型值。 如果您需要建立新的 MIME 樹狀結構或修改 Content-Type 的值,請使用 MIME 網域中的 ContentType 內容來設定 Content-Type 值。 如果您直接在 MIME 樹狀結構或 HTTP 樹狀結構中設定 Content-Type 值,則可能會忽略或不一致地使用此值。 下列 ESQL 是如何設定整合節點 ContentType 內容的範例:
SET OutputRoot.Properties.ContentType = 'text/plain';剖析
MIME 網域不會強制執行完整 MIME 規格。 因此,您可以使用在其他應用程式中可能無效的訊息。 例如, MIME 剖析器不堅持 MIME-Version 標頭。 MIME 剖析器會強制下列限制:
多組件 MIME 的特殊案例
MIME 剖析器主要用於多組件 MIME 訊息。 不過,剖析器也會處理一些特殊情況:
- 多組件 MIME 只有一個組件。 MIME 組件的邏輯樹狀結構會照常儲存內容類型及其他資訊,但附件的「資料」元素是空的。
- 單一部分 MIME。 對於單組件 MIME ,邏輯樹狀結構沒有「組件」子項。 MIME 樹狀結構的最後一個子項是「資料」元素。 「資料」元素是包含訊息資料之 BLOB 的母項。
- 不含內容的 MIME 組件。
安全 MIME (S/MIME)
S/MIME 是傳送安全電子郵件訊息的標準。 S/MIME 具有外部層次內容類型 multipart/signed ,具有參數 protocol 和 micalg ,用於定義用於加密訊息的演算法。 一或多個 MIME 組件可以有已編碼的內容。 這些組件具有內容類型值,例如 application/pkcs7-signature 及 base64的 Content-Transfer-Encoding。 MIME 網域不會嘗試解譯或驗證訊息是否已簽署。