栗原です。
最近、赤い宝石のスクリプトにはまりかけて、、、
それと、25日の jPLoP のワークショップにオブザーバとして参加してみ
ようかなと。
#平鍋さん、矢崎さんが参加されるようなので(^_^;
本題です。
ML アプリケーションの全体の流れを、思いつくままに並べてみました。
抜けや、「?」部分へのコメントがありましたら、お願いします。
#なんとなく全体のどの部分をやっているのかが見えないという意見が
#あったので、そのために、ペアとして参加しづらいのかなと考えたも
#ので。
「コンフィグファイル」のパスをパラメータとして、アプリケーションが起
動される
標準入力待ち状態
標準入力待ちループ
sendmail から、「メールメッセージ」を受信
文字コードは何?
何らかの終了文字列を受け取ったらループ抜け?
あらかじめ終了文字列を埋め込めるか?
「メールメッセージ」を解析
行ごとにメッセージを解析しながら、ループ
ヘッダーの解析
ヘッダーリストに追加
ボディの格納
コンフィグファイルをロード
メンバーリストを取得
リストを読み込む時にロックは不要?
ヘッダー部のデコード処理
BASE64?
ヘッダーの "From:" より、送信元アドレスを取得して、メンバーリストに含
まれていることをチェック
ヘッダーフィールド名 "From:" 部の解析
アドレス部を取得
解析結果アドレスが、メンバーリストに含まれることチェック
ヘッダーの "To:" 部を、代表宛先アドレスに更新
コンフィグ情報の、"X-ML-Name" の値を代表アドレスとして取得
代表アドレスを、宛先とする
現在の ML 番号を取得する
カウントファイルをロック
カウントを加算して、番号を格納
カウントファイルのロック解除
ヘッダーの "Subject:" 部処理
元サブジェクトのデコーディング
ML 番号の付加
"Re:" 付加処理
その他、コンフィグ情報として存在する、オプションのヘッダーを追加
X-Mail-Countなども
ヘッダー "Date:" などは、sendmail が勝手に追加してくれる?
他、"Content-Type:"、"Content-Transfer-Encoding:" あたりも必要か?
ヘッダー部のエンコード処理
BASE64?
不要なヘッダーを削除?
sendmail に、変更済み「メールメッセージ」を送る
何らかのコマンドを実行して、標準出力で送る?
iso-2022-jp への変換
終〜了
---
Tetsuya Kurihara
tetsuya@....jp