Index: [Article Count Order] [Thread]

Date:  Sat, 23 Sep 2000 15:37:43 +0900
From:  firo@....jp
Subject:  [XP-jp:00919] VXP 送信メールの宛先アドレス( Re: : VXP 	各種ファイルについて)
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <39CC53F6.84FCED1D@....jp>
References:  <97BA340C0480D411BDA800062939A1890607AF@....jp>
Posted:  Sat, 23 Sep 2000 15:55:53 +0900
X-Mail-Count: 00919

矢崎です。

tetsuya@....jpさん wrote:

> 栗原です。
>
> firo [mailto:firo@....jp] wrote:
>
> > さて、ファイルの分割についてですが、定義内容や、更新の頻度等
> > を考慮して分割を検討してみるというのは、正しいと思います。
> > 例えば、mailcountは常に更新されるので、1のファイルの中に、ヘッ
> > ダ情報等といっしょに混ぜておくのはどうかな、という気がします。き
> > ちんと設計をする、という観点からは一考の余地ありでしょう。
> >
> > ただし今の時点でいえば、私としては(別のメールにも書きましたが)
> > 、そろそろConfig以外のところに入りたいと思っています。それは、
>
> ちょっと今のまま突き進むとまずいのでは?と感じています。
> [XP-jp:00858]でホソカワさんがconfigファイルにはメンバーの一覧しか
> 含まないはず、と説明された後の返事がないまま、Configクラスが作ら
> れてしまったと感じています。
>
> コミュニケーション不足はXPでも致命的ですよね:-)
>

そうですね。[XP-jp:00858]に書いてあることで、特に宛先アドレス
に関することは、2つの異なる案があるようです。この点をあいまい
にしたまま先へ進むというのは、確かにコミュニケーション不足だし、
XPは他の方法論よりも、さらにコミュニケーションを大切にする方
法論なので、VXPにおいても、それをいいかげんにするわけにはい
かないでしょう。

では、私が前提としていた宛先アドレスの持ち方、処理のしかたで
すが、これは[XP-jp:00748]に書かれてある方法に準拠しています。
(いるつもりです。私の誤解でなければ)

(以下[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-recipient は配送のためのトリックです。/etc/mail-list/foo という
>ファイルには実際に配送するアドレスが列挙されています。driver は、
>最終的に配送するメール本文とこのアドレスを、sendmail にわたします。
>
>foo-request、owner-foo は管理者のアドレスです。あまり気にせず、お約束
>と考えておいてください。

(以下[XP-jp:00748]より引用おわり)

で上記の方法をベースに、今考えているConfigファイルがどう使われる
か、私が考えている方法を説明します。

まず/etc/aliasesが以下のようになっているとします。
(上記例の最初の2行が以下のようになる、と考えてください)

~~~~~~~~~~~~~
extremeprogramming-jp: "|/XP/jp/co/esm/wiki/extremedomo/mailer  config"
xp-recipient: :include:/etc/mail-list/xp

~~~~~~~~~~~~~

そして、configファイルが以下のようになっているとします。

~~~~~~~~~~~~~
X-ML-Name: xp-recipient
X-Mail-Count: 00796
$-MemberList: /etc/mail-list/xp
X-MLServer: fml [fml 2.1_GAMMA#185](distribute only mode)
X-ML-Info: If you have a question, contact with me

~~~~~~~~~~~~~
さて、実際の動作ですが、

まずsendmailはメールを受け取ると、その宛先を見ます。そして、
宛先が extremeprogramming-jp@ホストアドレス ならば、/etc/aliases
の該当する行、つまり
extremeprogramming-jp: "|/XP/jp/co/esm/wiki/extremedomo/mailer  config"
を見て、/XP/jp/co/esm/wiki/extremedomo/mailerを起動し、mailerの標準
入力にメール全文を流し込みます。また引数として"config"という文字列も、
同時に渡します。

mailerは引数で受け取った文字列をconfigファイルの名前と
解釈します。そこでそのconfigファイルを開き、データをメモリに
展開します(このあたりが、Configクラスがやっていること)。

mailerはconfigファイルにあるX-で始まる行をオプションのヘッダ
として受け取ったメールのヘッダに追加します。あるいは、ヘッダ
又は本文への他の編集もあるかもしれません。

ヘッダを編集するところで重要なのが、宛先アドレスの追加です。
mailerは受け取ったメールを、MLメンバに送らなければならない
ので各メンバのアドレスをヘッダに追加しなければなりません
(具体的にはどういう形式で追加するのかは、私は今は知りませ
ん)。

ここで2通りの方法が考えられます。ここが今2通りの案が出ている
個所だと思います。

1つは、メンバリストから、各MLメンバのアドレスを取得し、各
メンバごとにメールを複製し、1メールに1メンバのアドレスを
追加し、送信する(これをMailer自身が行う)。

2つめは、代表の宛先アドレスを使う。Mailerはメール1通だけ
に代表の宛先アドレスを追加し、それだけをsendmailに渡す。
本来のメンバへの送信はsendmail側が行う。

私が今考えている方法は後者のほうです。ですから、以降は
その方法で説明を続けます。

2つめの方法でいう代表の宛先アドレスというのは、実際には
受取り人が実在しないダミー的なものです。今の例でいうと、
configファイルの
X-ML-Name: xp-recipient
の行に書いてある xp-recipient がそうなります。したがって、
Mailerはメールの宛先にconifigファイルから取得した xp-recipient
という文字列を追加します。

そして、sendmailを起動し、その標準入力に編集の終わった
メール全文を流します。(sendmailの起動の仕方とかは、不明)

sendmailは、今受け取ったメールの宛先を解釈します。今回は、
宛先が xp-recipientなので、sendmailの/etc/aliasesにある
xp-recipient: :include:/etc/mail-list/xp
の行から、xp-recipient という宛先を変換する作業を行います。
これは、xp-recipient という1つの宛先を、/etc/mail-list/xp
というファイルに書かれている複数のアドレスへと変換する
ことを意味しています。/etc/mail-list/xpの中身はどう書かなけ
ればならないかは不明ですが、おそらく

aaa@....ccc,ddd@....fff,ggg@....iii  とか

aaa@....ccc
ddd@....fff
ggg@....iii

とかじゃないでしょうか(sendmailの仕様で決まっているのだと思い
ます)?

以上、長文で失礼しました。また、私はsendmailのしくみをよく
知らないので、以上の説明でまちがっている個所もあるかと
思います。お詳しい方のフォローをお待ちしています。


さて、以上書いてきたとおり、私の今の考えは、[XP-jp:00858]の案
とは異なります。[XP-jp:00858]はどちらかといえば、

メンバリストから、各MLメンバのアドレスを取得し、各
メンバごとにメールを複製し、1メールに1メンバのアドレスを
追加し、送信する(これをMailer自身が行う)。

という方法だと思われます。

ここまで書いてきた趣旨というのは、当然、どちらが、いい、悪
いということではなくて、どちらにしましょうか、ということを再度
確認すべし、ということで私の考えを書いてみました。栗原さん
のおっしゃるとおり、これから先に進むためにも、最終確認を
したいと思います。皆さんどうでしょう?

#長文になったのでファイル分割の話は別のメールで送ります。


--
矢崎 博英 <firo@....jp>