out-parameter-* 値は、任意に名前を設定したマッピングテーブルに保存したり、検索したりすることができます。この機能は、クライアントが送信する添付ファイル名を変更する場合に便利です。クライアントが送信する場合は、添付ファイルの種類 (postscript 、msword、text など) にかかわらず、att.dat のような汎用名が使用されるからです。ほかのクライアント (たとえば Outlook) が拡張子を読み取ってその部分が開けるように、その部分の名前を変更する一般的な方法です。
マッピングテーブルからパラメータ値を検索する構文は次のとおりです。
”mapping-table-name:mapping-input[$Y, $N]’
$Y はパラメータ値を返します。何も見つからなかった場合や一致するものとして $N が返された場合、変換ファイルのエントリ内のパラメータは、無視されるか空白文字列として扱われます。一致するものがない場合や $N の場合は、変換エントリ自体が強制終了します。
次のようなマッピングテーブルがあるとします。
X-ATT-NAMES postscript temp.PS$Y wordperfect5.1 temp.WPC$Y msword temp.DOC$Y |
このマッピングテーブルの変換エントリは次のとおりで、添付ファイルの指定ファイル名を汎用ファイル名に置換します。
out-chan=tcp_local; in-type=application; in-subtype=*; in-parameter-name-0=name; in-parameter-value-0=*; out-type=application; out-subtype=’INPUT-SUBTYPE’; out-parameter-name-0=name; out-parameter-value-0=”’X-ATT-NAMES:\\’INPUT_SUBTYPE\\''"; command="cp ”INPUT_FILE’ ”OUTPUT_FILE’"
この例で out-chan=tcp_local; in-type=application; in-subtype=* は、処理するメッセージが tcp_local チャネルからのもので、application/* の content-type ヘッダーが含まれていることを示します (* は任意のサブタイプ)。
また、in-parameter-name-0=name; in-parameter-value-0=* は、メッセージにパラメータ形式として name=* が含まれていることを示します (* は任意のパラメータ値。)
out-type=application; は、メッセージ処理後の MIME Content-type パラメータが application であることを示します。
out-subtype=’INPUT-SUBTYPE’; は、本文部分処理後の MIME subtype パラメータが INPUT-SUBTYPE 環境変数であることを示しています。これは入力 subtype のオリジナル値です。次のように変更できます。
Content-type: application/xxxx; name=foo.doc
から
Content-type: application/msword; name=foo.doc
に変更する場合は、次のようにします。
out-type=application; out-subtype=msword
out-parameter-name-0=name; は、出力本文部分の最初の MIME Content-type パラメータが name= 形式であることを示します。
out-parameter-value-0=’X-ATT-NAMES:\\’INPUT_SUBTYPE\\’’; は、最初の MIME subtype パラメータ値をとり、マッピングテーブル X-ATT-NAMES で subtype と一致するものを検索します。一致するものがあれば、name パラメータは X-ATT-NAMES マッピングテーブルで指定された新しい値を受け取ります。つまりパラメータの形式が msword であれば、name パラメータは temp.DOC になります。