矢崎です。
Tetsuya Kuriharaさん wrote:
> いろいろ忙しくてご無沙汰です。
>
私もちょっと忙しくて、ご無沙汰しております。
>
> sendmail とのやり取りをする Mailer クラスに手をつけようとしてちょっと
> 悩みました。
> #Mailer というと、メールクライアントを思い浮かべませんか(^_^;
>
現在はまだ名前は自由に変えていいのではないでしょうか?CRCは
あくまでも仮決めなので、実際にコードにはいる前なら名前は変えて
もいいでしょう。いや、XPはコードを書いた後も、リファクタリングで名前
を変えることはできますよね。
スタンドアップミーティングしてみるというのはどうでしょう?
>
> パラメータとして、Config ファイルと受信メールそのものを渡す、という
> ことでしたが、改行なども含まれるメール本文をどうやってパラメータで
> 渡すのでしょうか?
>
本文は標準入力に流し込まれます。
[XP-jp:00748]にやまのさんが詳しく書いてくださっていますが、
引用すると、、、
引用ここから~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
昔、ML 用のドライバーを自作していた時は、こんな感じにやっていました。
まず、以下のエントリーを /etc/aliases に追加します。(MTA は sendmail)
foo: "|/home/yyamano/ml/foo/driver"
foo-recipient: :include:/etc/mail-list/foo
foo-request: owner-foo
owner-foo: u90156@....jp
foo はリスト本体のアドレスで、ここあてのメールを受信すると
/home/yyamano/ml/foo/driver が起動され、メール本文(含むヘッダー)
は標準入力にながしこまれます。driver の中で、メールヘッダーの
書きかえや、アーカイブをおこない、最終的に送信する内容を sendmail
にふたたびわたします。
foo-request、owner-foo は管理者のアドレスです。あまり気にせず、お約束
と考えておいてください。
引用ここまで~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
また上記ご投稿では、パラメタについては少しだけしかふれてありま
せんでしたが、以下のメールでフォローくださっています。
[XP-jp:00770]
同じく引用すると
引用ここから~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> これは、Mailerの標準入力から受け取ったテキスト
> から、ヘッダにあるアドレス(例でいえばfoo)を取り
> 出してfooと対応する宛先(foo-recipient:)へ変換す
> るということという理解でいいでしょうか?そして、そ
> の変換の情報がファイルに書いてあると、、
いいえ。/etc/aliase に以下のように書いておき、/home/yyamano/ml/foo/config
というファイルの中に、foo-recipient だとか、Subject を加工するのに必要な
情報等を格納しておく事を考えていました。
foo: "|/home/yyamano/ml/foo/driver /home/yyamano/ml/foo/config"
メールのヘッダーの To: だとか Cc: に書かれているアドレスはそれほど
信用できるものではないので、ヘッダーの情報を元に配送先を決定すると
余計なトラブルの原因になりそうです。
メールのヘッダーに書かれている From: や To: と、実際の送信者、
受信者は別ものです。SMTP 的にはヘッダーの From: や To: は、
メール本文と同じ単なるデータにすぎません。
引用ここまで~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
矢崎博英 firo@....jp