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

郵件重新格式化

如上所述,CHARSET-CONVERSION 對映表還用於實現 MIME 附件與數種專用郵件格式附件之間的轉換。

以下各小節會舉例說明可以透過 CHARSET-CONVERSION 對映表實現的其他一些類型的郵件重新格式化。

非 MIME 二進位附件轉換

如果為與處理郵件相關的任一通道啟用 CHARSET-CONVERSION 時,使用某種非標準 (非 MIME) 格式的郵件 (例如,使用特定專用格式的郵件或來自 Microsoft Mail [MSMAIL] SMTP 閘道的郵件) 會自動轉換成 MIME 格式。如果有 tcp_local 通道,則通常是指來自 Microsoft Mail SMTP 閘道的郵件之內送通道,而以下參數會對傳送至本機使用者的郵件啟用轉換:

CHARSET-CONVERSION  

  IN-CHAN=tcp_local;OUT-CHAN=ims-ms;CONVERT         Yes

您可能還想新增通道項目至其他本機郵件系統。例如,tcp_internal 通道的項目:

CHARSET-CONVERSION

  IN-CHAN=tcp_local;OUT-CHAN=l;CONVERT              Yes
  IN-CHAN=tcp_local;OUT-CHAN=tcp_internal;CONVERT   Yes

或者,若要涵蓋所有的通道,只需指定 OUT-CHAN=* 而非 OUT-CHAN=ims-ms 即可。但是,這樣可能會造成郵件處理耗用時間增加,因為,進入 tcp_local 通道的所有郵件都會被詳細檢查,而不是只檢查那些連結至特定通道的郵件。

更重要的是,這種不加區分的轉換可能會使系統難以確定僅僅是通過系統的轉換郵件 (不一定屬於您自己的網站) 之位置。在這種情況下,只需進行傳輸,而不必進行任何變更 (除變更郵件訊息封和相關傳輸資訊)。

若要將 MIME 轉換成 Microsoft Mail SMTP 閘道可以識別的格式,請在 MTA 配置中對 Microsoft Mail SMTP 閘道使用單獨的通道,例如 tcp_msmail,並在 mappings. 檔案中加入以下內容:

CHARSET-CONVERSION  

  IN-CHAN=*;OUT-CHAN=tcp_msmail;CONVERT        RFC1154

重新標示 MIME 標頭

某些使用者代理程式或閘道可以傳送包含 MIME 標頭的郵件,這些標頭中所帶的資訊可能比它們能帶的資訊少,但足以建構更精確 MIME 標頭。儘管最好的解決方案是正確配置這類使用者代理程式或閘道,但如果它們不屬於您控制,您可以要求 MTA 嘗試重新建構更有用的 MIME 標頭。

如果 CHARSET-CONVERSION 對映表的第一種探測產生 YesAlways 關鍵字,則 MTA 將檢查 conversions 檔案是否存在。如果 conversions 檔案存在,則 MTA 會從中尋找包含 RELABEL=1 的項目,如果找到此項目,MTA 將執行該項目中指定的任一 MIME 重新標示。請參閱控制轉換處理,以取得有關 conversions 檔案項目的資訊。

例如,CHARSET-CONVERSION 表,如:


CHARSET-CONVERSION  

  IN-CHAN=tcp_local;OUT-CHAN=tcp_internal;CONVERT            Yes

與 MTA conversion 檔案項目


out-chan=ims-ms; in-type=application; in-subtype=octet-stream; 
  in-parameter-name-0=name; in-parameter-value-0=*.ps; 
  out-type=application; out-subtype=postscript;   
  parameter-copy-0=*; relabel=1 

out-chan=ims-ms; in-type=application; in-subtype=octet-stream; 
  in-parameter-name-0=name; in-parameter-value-0=*.msw; 
  out-type=application; out-subtype=msword; 
     parameter-copy-0=* relabel=1

的組合會使送達 tcp_local 通道並路由至 ims-ms 通道的郵件 (最初送達時包含 MIME 標示 application/octet-stream,但檔案名稱參數帶有副檔名 psmsw),被分別重新標示為 application/postscript 或application/msword。(請注意,這種更精確的標示是原始使用者代理程式或閘道應自行執行的。)此種重新標示與 MIME-CONTENT-TYPES-TO-MR 對映表一同使用時特別有用,可用於將此種結果 MIME 類型轉換回相應的 MRTYPE 標記,這需要精確的 MIME 標示以進行最佳化的作業﹔如果所有的內容類型都僅標示為 application/octet-stream,則 MIME-CONTENT-TYPES-TO-MR 對映表最多僅能無條件地將所有此種類型轉換為 MRTYPE 一種類型。

透過以上範例和 MIME-CONTENT-TYPES-TO-MR 對映表項目,包含

APPLICATION/POSTSCRIPT        PS 
APPLICATION/MSWORD              MW

例如,進來的標示

Content-type: application/octet-stream; name=stuff.ps

將被重新標示為

Content-type: application/postscript

然後再被轉換為 MRTYPE 標記 PS,以通知 Message Router 預期 PostScript。

有時,從相反的方向執行重新標示會很有用,即將特定的 MIME 附件標示「降級」 為 application/octet-stream (用於通用二進位資料的標示)。具體來說,「降級」的特定 MIME 標示通常與 mime_to_x400 通道 (PMDF-X400) 或 xapi_local 通道 (PMDF-MB400) 上的 convert_octet_stream 通道關鍵字一同使用,以強制將所有二進位 MIME 附件轉換為 X.400 bodypart 14 格式。

例如,CHARSET-CONVERSION 表,如:

CHARSET-CONVERSION

    IN-CHAN=*;OUT-CHAN=mime_to_x400*;CONVERT Yes

與 PMDF 轉換檔案項目

out-chan=mime_to_x400*; in-type=application; in-subtype=*;
   out-type=application; out-subtype=octet-stream; relabel=1
 
out-chan=mime_to_x400*; in-type=audio; in-subtype=*; 
   out-type=application; out-subtype=octet-stream; relabel=1 

out-chan=mime_to_x400*; in-type=image; in-subtype=*; 
   out-type=application; out-subtype=octet-stream; relabel=1 

out-chan=mime_to_x400*; in-type=video; in-subtype=*; 
   out-type=application; out-subtype=octet-stream; relabel=1

的組合將使發往 mime_to_x400* 通道的所有郵件的各種特定 MIME 附件標示「降級」為通用 application/octet-stream 標示 (以套用 convert_octet_stream)。

MacMIME 格式轉換

檔案包含兩個部分:一是包含特定資訊的資源分支,一是包含適用於其他平台的資料之資料分支。這使得 Macintosh 檔案的傳輸更為複雜,因為傳輸 Macintosh 檔案部分時通常需要使用四種不同的格式。其中 Applesingle、Binhex 以及 Macbinary 這三種格式都包含 Macintosh 資源分支與 Macintosh 資料分支的合併編碼。第四種格式 Appledouble 則是包含資源分支與資料分支兩個單獨部分的多重格式。因此 Appledouble 通常是最適用於非 Macintosh 平台的格式,因為在這種情況下,資源分支部分可以被忽略,而資料分支部分可供非 Macintosh 應用程式使用。但是,在特別針對 Macintosh 傳送時,可以使用其他格式。

MTA 可以在以上多種格式之間進行 Macintosh 轉換。CHARSET-CONVERSION 關鍵字 AppledoubleApplesingleBinhexMacbinary 會告知 MTA 將其他 MacMIME 結構化部分分別轉換成 multipart/appledouble、application/applefile、application/mac-binhex40 或 application/macbinary 等 MIME 結構。此外,BinhexMacbinary 關鍵字也會請求轉換成指定格式的非 MacMIME 格式部分,而其 MIME Content-type: 標頭中仍包含 X-MAC-TYPEX-MAC-CREATOR 參數。CHARSET-CONVERSION 關鍵字 Block 告知 MTA 從 MacMIME 格式部分中只擷取資料衍生,捨棄資源衍生 (由於這樣會遺失資訊,因此通常最好使用 Appledouble)。

例如,以下 CHARSET-CONVERSION 表將會在傳送到 VMS MAIL 電子信箱或 GroupWise 郵局時告知 MTA 轉換成 Appledouble 格式,以及在傳送到 Message Router 通道時轉換成 Macbinary 格式:

CHARSET-CONVERSION
   IN-CHAN=*;OUT-CHAN=l;CONVERT              Appledouble 
   IN-CHAN=*;OUT-CHAN=wpo_local;CONVERT      Appledouble 
   IN-CHAN=*;OUT-CHAN=tcp_internal;CONVERT   Macbinary

轉換至 Appledouble 格式僅適用於已使用 MacMIME 格式之一的部分。轉換至 Macbinary 格式僅適用於已是 MacMIME 格式之一的部分,或者 MIME Content-type: 標頭上包含 X-MAC-TYPE 和 X-MAC-CREATOR 參數的非 MacMIME 的 參數。

轉換至 Appledouble 或 Block 格式時,可以使用 MAC-TO-MIME-CONTENT-TYPES 對映表指示對 Appledouble 部分或 Block 部分的資料衍生應放置何種特定的 MIME 標籤,具體取決於原始 Macintosh 檔案中包含的是何種 Macintosh 建立者與 Macintosh 類型資訊。此表的探測形式為:format|type|creator|filename,其中,format 是指 SINGLE、BINHEX 或 MACBINARY 三者之一;type 與 creator 分別指十六進位形式的 Macintosh 類型與 Macintosh 建立者資訊;filename 指檔案名稱。

例如,傳送至 ims-ms 通道時若要轉換成 Appledouble,並且在這樣做時若要對轉換自 MACBINARY 或 BINHEX 部分的任何 MS Word 或 PostScript 文件使用特定 MIME 標籤,對應的表格可以是:


CHARSET-CONVERSION 

  IN-CHAN=*;OUT-CHAN=ims-ms;CONVERT     Appledouble


MAC-TO-MIME-CONTENT-TYPES 

! PostScript 
    MACBINARY|45505346|76677264|*     APPLICATION/POSTSCRIPT$Y 
    BINHEX|45505346|76677264|*        APPLICATION/POSTSCRIPT$Y 
! Microsoft Word 
    MACBINARY|5744424E|4D535744|*     APPLICATION/MSWORD$Y 
    BINHEX|5744424E|4D535744|*        APPLICATION/MSWORD$Y

請注意,對映項目的範本 (右側) 必須設定有 $Y 旗標以執行指定標示。附加附件類型的範例項目位於 MTA 表格目錄的 mac_mappings.sample 檔案中。

如果要將非 MacMIME 格式部分轉換成 Binhex 或 Macbinary 格式,則此類部分必須提供 X-MAC-TYPE 和 X-MAC-CREATOR MIME Content-type: 參數值。請注意,MIME 重新標示可用於將此類參數強制加入原本未包含它們的部分。