Sun Java System Messaging Server 6 2005Q4 管理ガイド

サービス変換

MTA の変換サービス機能をサイト提供のプロシージャと一緒に使用すると、新しい形式のメッセージを作成することができます。前述の CHARSET-CONVERSIONconversion チャネルの場合は個別の MIME メッセージ部分を操作しますが、変換サービスはすべての MIME メッセージ部分 (MIME ヘッダーと内容) および MIME メッセージ全体を操作します。また、ほかの CHARSET-CONVERSION 操作や変換チャネルの操作とは異なり、変換サービスは独自で MIME 逆アセンブリ、デコード、再エンコード、および再アセンブリを行います。

ほかの CHARSET-CONVERSION 操作と同様に、変換サービスは CHARSET-CONVERSION マッピングテーブルを通じて有効化されます。CHARSET-CONVERSION マッピングテーブルを最初にプローブした結果が Yes または Always キーワードの場合、MTA は conversions ファイルが存在するかどうかをチェックします。conversions ファイルが存在する場合は、ファイル内に 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 チャネルから届くすべてのメッセージが圧縮されます。

入力ファイル名、出力ファイル名、メッセージのエンベロープ受取人アドレスを含むファイルの名前などを渡すためには、環境変数が使われます。これらの 3 つの環境変数は次のとおりです。

この 3 つの環境変数の値は、通常の方法でコマンド行に代入することができます。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