2 メールシステムとの連携
2.4 メールフィルターアプリケーションの仕様
UNIX版のJP1/AJS2メールシステム連携機能では,RFC822形式のメールだけをサ ポートしています。ただし,メールフィルターアプリケーションを別途用意することに よって,JP1/AJS2で次のメールを扱えます。
• 漢字などのマルチバイト文字コードが使われているメール
• MIMEなどによってテキストがエンコードされているメール
メールフィルターアプリケーションは,これらのメールを,受信したホストで扱える文 字コード体系(JP1/AJS2が動作している言語環境)に変換します。
メールフィルターアプリケーションでメールを変換する処理の概要を次の図に示します。
図2-12 メールフィルターアプリケーションによるメール変換処理の概要
メールフィルターアプリケーションで変換されたメールは,メールシステム連携のメー ル受信でだけ使われます。受信したメールを保存する場合には,メールフィルターアプ リケーションで変換する前の状態のメールが使われます。
メールフィルターアプリケーションは,セットアップ時に作成してください。
ここでは,メールフィルターアプリケーションの仕様について説明します。ここで説明 する入出力およびリターン値の形式に従っていれば,自由にメールフィルターアプリ ケーションを作成してかまいません。
2.4.1 メールフィルターアプリケーションの仕様
メールフィルターアプリケーションの仕様について説明します。
(1) メールフィルターアプリケーションで使うファイル
メールフィルターアプリケーションで使うファイルを,次の表に示します。
表2-3 メールフィルターアプリケーションで使うファイル
項番 ファイル名 内容
1 /opt/jp1ajs2/usrtools/converter メールフィルターアプリケーションの名称。
メールフィルターアプリケーションの名称には,表の項番1に示すファイル名を使って ください。また,メールフィルターアプリケーションの入力ファイルには表の項番2に 示す名称を,変換後のメールの出力ファイルには項番3に示す名称を使用してください。
論理ホストを使用している場合,ファイル名は次のようになります。
(例)論理ホスト名が「HOSTNAME1」の場合
• メールフィルターアプリケーション名:/opt/jp1ajs2/usrtools/
converterHOSTNAME1
• 入力ファイル名:/opt/jp1ajs2/usrtools/converterinHOSTNAME1
• 出力ファイル名:/opt/jp1ajs2/usrtools/converteroutHOSTNAME1 注 「/opt/jp1ajs2/usrtools/converter」と論理ホスト名の間,「/opt/
jp1ajs2/usrtools/converterin」と論理ホスト名の間,および「/opt/
jp1ajs2/usrtools/converterout」と論理ホスト名の間には,空白文字は入れ ません。
(2) メールフィルターアプリケーションに設定する戻り値
メールフィルターアプリケーションでの変換の終了時,メールフィルターアプリケー ションからJP1/AJS2に戻り値を渡すように設定してください。
JP1/AJS2は渡された戻り値によって異なる処理をします。メールフィルターアプリケー
ションに設定する戻り値と,それに対応するJP1/AJS2の処理を,次の表に示します。
表2-4 戻り値と戻り値に対応するJP1/AJS2の処理 2 /opt/jp1ajs2/usrtools/
converterin
入力ファイル。
JP1/AJS2によってメールファイルから取り出さ れた1通のメールが格納されている。
JP1/AJS2がこのファイルにメールを格納したあ と,メールフィルターアプリケーションを起動す る。
3 /opt/jp1ajs2/usrtools/
converterout
出力ファイル。
メールフィルターアプリケーションで変換した メールを格納する。
メールフィルターアプリケーションが正常に終了 すると,JP1/AJS2がこのファイルに格納されて いるメールを取り出し,監視条件の判定をする。
戻り値 意味 JP1/AJS2の処理
0 正常終了 メールフィルターアプリケーションの出力ファイルに格納されたメール を取り出し,監視条件で判定する。
また,メールフィルターアプリケーションで次のメールを変換する。
項番 ファイル名 内容
メールフィルターアプリケーションから戻り値を渡す方法は,メールフィルターアプリ ケーションを作成した言語によって異なります。それぞれ,次に示す方法で設定してく ださい。
• シェル言語の場合:exitコマンド
• C言語の場合:exit()システムコール
2.4.2 文字コード変換に関する仕様
漢字などのマルチバイト文字が使われているメールを,JP1/AJS2 メールシステム連携で 使用できるように変換するメールフィルターアプリケーションの仕様を説明します。
メールシステム連携で漢字などのマルチバイト文字が使われているメールを扱いたい場 合は,文字コードの変換が必要です。変換をしないと,メールで使用している文字コー
ドとJP1/AJS2が動作している言語の文字コードが一致しないため,メール受信監視
ジョブの条件を満たさなくなります。JP1/AJS2が動作している言語の文字コードは,デ フォルトでは次のようになっています。
• OSがSolarisの場合:EUC
• OSがSolaris以外の場合:シフトJIS
これらの文字コードに変換する仕様で,メールフィルターアプリケーションを作成して ください。
なお,JP1/AJS2では,文字コードを変換するシェルスクリプトをサンプルとして提供し ています。メールフィルターアプリケーションを作成する際,このサンプルを参考にで きます。このサンプルのシェルスクリプトについては,「2.4.4 メールフィルターアプリ ケーションのサンプルシェルスクリプト」を参照してください。
2.4.3 MIME などのデコードに関する仕様
MIME形式などのエンコードされているメールを,JP1/AJS2メールシステム連携で使 用できるように変換するメールフィルターアプリケーションの仕様を説明します。
MIME形式などのエンコードされているメールを受信した場合,受信したメールに含ま れるエンコードの形式の判別と,それに対応したデコード処理が必要です。
これらの変換をする仕様で,メールフィルターアプリケーションを作成してください。
また,デコード処理をしたメールが,JP1/AJS2が動作している言語の文字コードと一致 しない場合は,さらにJP1/AJS2が動作している言語の文字コードへ変換するように,
0以外 異常終了 メッセージを出力し,メールシステム連携機能を休止状態にする。
また,変換が異常終了したメールを障害用メールファイルに保存する。
次のメールは,JP1/AJS2が再起動されてから変換する。
戻り値 意味 JP1/AJS2の処理
メールフィルターアプリケーションを作成する必要があります。
2.4.4 メールフィルターアプリケーションのサンプルシェル スクリプト
メールフィルターアプリケーションのサンプルとして,文字コードを変換するシェルス クリプトを用意しました。このシェルスクリプトでは,受信したメールの文字コードだ けを変換し,MIMEなどのエンコードについては変換しません。
ファイルの名称は,/opt/jp1ajs2/tools/converterです。
なお,このサンプルシェルスクリプトで変換される文字コードは,OSによって次のよう に異なりますので注意が必要です。
• OSがSolarisの場合:JISからEUCに変換します。
• OSがSolaris以外の場合:JISからシフトJISに変換します。
2.4.5 メールフィルターアプリケーションのセットアップ
メールフィルターアプリケーションのセットアップ手順を次に示します。
1. メールフィルターアプリケーションを別途用意する。
メールフィルターアプリケーションの仕様に従ったプログラム・シェルスクリプトを 用意します。このとき,ファイル名は「converter」としてください。
2. /opt/jp1ajs2/usrtoolsディレクトリを作成する。
3. 手順2で作成したディレクトリに読み取り/書き込み権限を与える。
4. 用意したメールフィルターアプリケーションを手順2で作成したディレクトリに置 く。
5. メールフィルターアプリケーションに実行権限を与える。