メッセージ本文部分を処理する場合、MIME ヘッダー行情報や本文部分全体をサイト提供のプログラムとやり取りすると便利なことがあります。たとえば、あるプログラムでメッセージ本文部分以外に Content-type と Content-disposition ヘッダー行情報が必要であるとします。一般にサイト提供のプログラムに入力されているのは、主にファイルから読み取るメッセージ本文部分です。プログラムで本文部分が処理されると、変換チャネルが読み取りファイルに書き込まれます。このような情報の受け渡しは、変換チャネル環境変数を使って行われます。
環境変数は、parameter-symbol-* パラメータや定義済みの変換チャネル環境変数のセット (「変換チャネル出力オプションを使用するには」を参照) を使って、conversions ファイルで作成することができます。
次の conversions ファイルエントリと着信ヘッダーでは、サイト提供のプログラムに環境変数を使って MIME 情報を渡す方法が示されています。
conversions ファイルエントリ:
in-channel=*; in-type=application; in-subtype=*; parameter-symbol-0=NAME; parameter-copy-0=*; dparameter-symbol-0=FILENAME; dparameter-copy-0=*; message-header-file=2; original-header-file=1; override-header-file=1; override-option-file=1; command="/bin/viro-scan500.sh ”INPUT_FILE’ ”OUTPUT_FILE’" |
着信ヘッダー:
Content-type: APPLICATION/msword; name=Draft1.doc Content-transfer-encoding: BASE64 Content-disposition: attachment; filename=Draft1.doc Content-description: "Project documentation Draft1 msword format" |
in-channel=*; in-type=application; in-subtype=* は、application 形式の任意の入力チャネルから受信したメッセージ本文部分が処理されることを示します。
parameter-symbol-0=NAME は、最初の Content-type パラメータの値 (この例では Draft1.doc) が NAME という環境変数に保存されることを示します。
parameter-copy-0=* は、入力本文部分の Content-type パラメータがすべて出力本文部分にコピーされることを示します。
dparameter-symbol-0=FILENAME は、最初の Content-disposition パラメータの値 (この例では Draft1.doc) が FILENAME という環境変数に保存されることを示します。
dparameter-copy-0=* は、入力本文部分の Content-disposition パラメータがすべて出力本文部分にコピーされることを示します。
message-header-file=2 は、メッセージの元のヘッダー全体 (もっとも外側のメッセージヘッダー) が環境変数 MESSAGE_HEADERS で指定したファイルに書き込まれることを示します。
original-header-file=1 は、封入する MESSAGE/RFC822 部分の元のヘッダーが環境変数 ORIGINAL_HEADERS で指定したファイルに書き込まれることを示します。
override-header-file=1 は、MIME ヘッダーが環境変数 OUTPUT_HEADERS で指定したファイルから読み取られ、封入する MIME 部分の元の MIME ヘッダー行を無視することを示します。$OUTPUT_HEADERS は、変換実行中に作成される一時ファイルです。このファイルはサイト提供のプログラムで使用され、変換処理中に変更された MIME ヘッダー行が保存されます。本文部分が変換チャネルで再構築される際に、このファイルから MIME ヘッダー行が読み取られます。変更できるのは MIME ヘッダー行のみです。MIME 以外の一般のヘッダー行は、変換チャネルで変更できません。
override-option-file=1 は、変換チャネルが OUTPUT_OPTIONS 環境変数によって名前が付けられたファイルから変換チャネルのオプションを読み取ることを表します。「変換チャネル出力オプションを使用するには」を参照してください。
command="msg_svr_base/bin/viro-scan500.sh" は、メッセージ本文部分で実行するコマンドを示します。
表 13–3 変換チャネル環境変数
環境変数 |
説明 |
---|---|
ATTACHMENT_NUMBER |
現在の部分の添付ファイル番号です。これは、ATTACHMENT-NUMBER 変換の照合パラメータと同じ形式です。 |
CONVERSION_TAG |
アクティブな変換タグの現在のリストです。これは、TAG 変換の照合パラメータに対応します。 |
INPUT_CHANNEL |
メッセージを変換チャネルのキューに入れたチャネルです。これは、IN-CHANNEL 変換の照合パラメータに対応します。 |
INPUT_ENCODING |
元の本文部分に存在するエンコーディングです。 |
INPUT_FILE |
元の本文部分を含むファイルの名前です。サイト提供のプログラムはこのファイルを読み取ります。 |
INPUT_HEADERS |
本文部分の元のヘッダー行を含むファイルの名前です。サイト提供のプログラムはこのファイルを読み取ります。 |
INPUT_TYPE |
入力メッセージ部分の MIME Content-type です。 |
INPUT_SUBTYPE |
入力メッセージ部分の MIME コンテンツサブタイプです。 |
INPUT_DESCRIPTION |
入力メッセージ部分の MIME content-description です。 |
INPUT_DISPOSITION |
入力メッセージ部分の MIME content-disposition です。 |
MESSAGE_HEADERS |
封入するメッセージ (本文部分だけに限らない) の元の一番外側のヘッダーまたは本文部分がすぐに封入する MESSAGE/RFC822 部分のヘッダーを含むファイル名です。サイト提供のプログラムはこのファイルを読み取ります。 |
OUTPUT_CHANNEL |
メッセージの送信先のチャネルです。これは、OUT-CHANNEL 変換の照合パラメータに対応します。 |
OUTPUT_FILE |
サイト提供のプログラムがその出力を保存するファイル名です。サイト提供のプログラムはこのファイルを作成して書き込みます。 |
OUTPUT_HEADERS |
サイト提供のプログラムが封入する部分の MIME ヘッダー行を保存するファイル名です。サイト提供のプログラムはこのファイルを作成して書き込みます。ファイルには、option=value 行ではなく実際の MIME ヘッダー行が含まれ、最後の行は空白行となります。また、変更できるのは MIME ヘッダー行のみです。MIME 以外の一般のヘッダー行は、変換チャネルで変更できません。 |
OUTPUT_OPTIONS |
サイト提供のプログラムで変換チャネルオプションを読み取るファイル名です。「変換チャネル出力オプションを使用するには」を参照してください。 |
PART_NUMBER |
現在の部分の番号です。これは、PART-NUMBER 変換の照合パラメータと同じ形式です。 |
PART_SIZE |
処理されている部分のバイト数です。 |
メール変換タグは、特定の受取人または差出人に関連付けられている特別なタグです。メッセージの配信時には、このタグは変換チャネルプログラムから見えるので、特別な処理に使用することができます。変換タグは LDAP ディレクトリに保存されます。
メール変換タグは、次のように使用できます。管理者は、選択したユーザーに対してメール変換タグの値を harmonica に設定します。次に、管理者は、そのメールを処理する際にタグおよび harmonica の値が存在するかどうかを検出する変換チャネルを設定します。この場合、プログラムはいくつかの任意の機能を実行します。
メール変換タグは、ユーザー単位またはドメイン単位に設定できます。ドメインレベルの受取人の LDAP 属性は MailDomainConversionTag です (MTA オプション LDAP_DOMAIN_ATTR_CONVERSION_TAG によって変更可能)。ユーザーレベルの受取人の LDAP 属性は MailConversionTag です (MTA オプション LDAP_CONVERSION_TAG によって変更可能)。どちらの属性にも、それぞれの値に異なるタグを指定して複数の値を設定することができます。特定の受取人に関連付けられているタグのセットは累積されます。すなわち、ドメインレベルのタグセットとユーザーレベルのタグセットが結合されます。
差出人ベースの変換タグは、MTA オプション LDAP_SOURCE_CONVERSION_TAG および LDAP_DOMAIN_ATTR_SOURCE_CONVERSION_TAG によって設定できます。これらは、ソースアドレスに関連付けられたそれぞれの変換タグごとにユーザーおよびドメインレベルの LDAP 属性を指定します。上のどちらのオプションでも、デフォルトの属性は設定されていません。