Index: [Article Count Order] [Thread]

Date:  Thu, 17 Aug 2000 13:03:16 +0900
From:  firo <firo@....jp>
Subject:  [XP-jp:00737] Re: VXP ストーリー1タスク案
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <00Aug17.130418jst.115202@....jp>
References:  <B5BCE3E7.2D20%khosokawa@....com>		<00Aug14.174458jst.115202@....jp> <20000816.165255.46640522.u90156@....jp>
Posted:  Thu, 17 Aug 2000 13:04:17 +0900
X-Mail-Count: 00737

矢崎です。

Yuji Yamanoさん wrote:

> こんにちは。最近、いそがしくてきちんと読んでなかったのですが、
>
> firo <firo@....jp> writes:
>
> > Memberというクラスはどうでしょう?1インスタンスが、1つ(1人)の
> > メンバ情報を管理します。また、案ですが、こいつにメール本文を
> > 送れば、ヘッダ情報をつけて、外に出すような役割を持たせても
> > よいかもしれません。
>
> Member にメール本文を送る案は、効率と SMTP のプロトコルとの親和性を
> 考えるといまいちだと思います。このやり方だと、
>
> - Member 毎に相手先のメールサーバと MAIL FROM: 〜 DATA をしゃべる
>
> か、
>
> - 全 Member の情報と本文をどこかにためておいて、効率的な配送
>   ができるように誰かがコントロールしながら SMTP をしゃべる
>
> 必要があります。リストがアクティブで多数の講読者がいる場合には、
> 効率は無視できません。
>
> SMTP をしゃべる部分まで自前で作るのであれば、最低でも
>
> ML 固有の設定を管理するクラス(ML 名とか、メンバーファイル等)
> メール本文
> メンバーリスト、メンバー
> メール配送を管理するクラス
> SMTP をしゃべるクラス
>
> ぐらいが必要ではないでしょうか。
>
> ストーリー1 は、sendmail のような MTA におまかせにして、先に進むのが
> 楽かなという気もしますが。
>

なるほど、メールの受け取り、配送、エイリアスの処理は
sendmailにおまかせ、というわけですね。

sendmailとか、誤解しているかもしれないので、ここで確認
させてください。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
([XP-jp:00680]を参照)

MTA(ex.sendmai)--->extreme-domo--->MTA(ex.sendmai)
       (--->はメールの流れ)

というわけで、上記のextreme-domoを、今回のVXPで開発
する。

つまり、

1.MTA(sendmail)がメールを受け取る。

2.MTAは/etc/aliasesを見て、エイリアスの判断し、該当するもの
  をextreme-domoの標準入力に送る。
     例:XP-jp: "|/usr/local/bin/extreme-domo XP-jp"

3.extreme-domoはいろいろやる<---何をやるかが、ユーザ
  ストーリとして定義されるというわけ。

4.extreme-domoはいろいろやった後のメールを、メンバーへ
  配送するために、再びMTAへ渡す。

5.MTAは/etc/aliasesを見て、エイリアスをメンバへのアドレス
  へと展開し、送信する。

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

もし、上記でよろしければ、確かにストーリ1の大部分はsendmail
にやらせるということになりますね。以下のタスクでいえば、タスク
4を、「**入力した**  メールを  **MTAに** 送るメカニズム」と
読みかえて、それだけをすればいいようにも思いますがどうでしょう?

(本当は、メールを と MTAに の間に、XXXをして、というのが
はいりますが、このXXXは、このユーザストーリに含まれていない
ので、このストーリの開発にはあがってこない、と理解していま
すが、、?)


<[XP-jp:00676]>

ストーリー1の「メーリングリスト(以下ML)のユーザが,ML のアドレスにメー
ル送
信すると,ML に所属するメンバ全員に,そのメールが配信される.」タスクを
考え
てみました。

タスク1:メンバーリストを読み込んで、メールアドレスのリストとして保持す
る。

タスク2:新規メールを受け取ると、メールアドレスのリストの各メールアドレ
スに
受け取ったメールを送る。

タスク3:新規メールが到着したら、タスク2を起動するメカニズム。

タスク4:メールを送るメカニズム。

</[XP-jp:00676]>

さて、以上だとすれば、Memberクラスはいらない、というご指摘に
私も賛成します。

ホソカワさんご提案のMailerクラス(これは入力用と出力用にわけ
なくてもいいのでしょうか?)だけでいいような気もしますが。


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