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

服務轉換

MTA 的轉換服務功能可用於透過站點提供的程序處理郵件,以便產生新的郵件形式。它既不同於以上說明的 CHARSET-CONVERSION 作業類型,又不同於 conversion 通道,這兩者均針對個別 MIME 郵件部分內容進行作業,而轉換服務是針對整個 MIME 郵件部分 (MIME 標頭與內容) 以及整個 MIME 郵件進行作業。此外,不同於其他 CHARSET-CONVERSION 作業或 conversion 通道作業,轉換服務會執行自己的 MIME 分解、解碼、重新編碼及重新組合。

如同其他 CHARSET-CONVERSION 作業一樣,轉換服務可以透過 CHARSET-CONVERSION 對映表啟用。如果 CHARSET-CONVESION 對映表的第一種探測產生 YesAlways 關鍵字,則 MTA 將檢查 conversions 檔案是否存在。如果 conversions 檔案存在,則 MTA 會從中尋找用於指定 SERVICE-COMMAND 的項目,如果找到此類項目,則執行該項目。conversions 檔案項目形式如下:


in-chan=channel-pattern; 
  in-type=type-pattern; in-subtype=subtype-pattern; 
  service-command=command

重點在於指令字串。這是執行服務轉換時應執行的指令 (例如呼叫文件轉換程式)。該指令必須處理包含要服務之郵件文字的輸入檔案,並產生包含新郵件文字的輸出檔案。在 UNIX 中,指令如果成功,則顯示 0 並結束,否則顯示非零值。

例如,CHARSET-CONVERSION 表,如

CHARSET-CONVERSION

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

和 UNIX 上的 MTA conversions 檔案項目


in-chan=bsout_*; in-type=*; in-subtype=*; 
service-command="/pmdf/bin/compress.sh compress $INPUT_FILE $OUTPUT_FILE"

的組合將導致來自 BSOUT 通道的所有郵件被壓縮。

環境變數用於轉送輸入檔案與輸出檔案的名稱,以及包含郵件訊息封收件者位址清單的檔案之名稱。這些環境變數的名稱如下:

可使用標準指令行替換將這三種環境變數的值替換到指令行中:即在 UNIX 中於變數名稱前放置字元。例如,如果 INPUT_FILEOUTPUT_FILE 的值分別為 a.in 和 a.out,則 UNIX 上的以下宣告:


in-chan=bsout_*; in-type=*; in-subtype=*; 
 service-command="/pmdf/bin/convert.sh $INPUT_FILE $OUTPUT_FILE"

將執行指令

/pmdf/bin/convert.sh a.in a.out