会話伝達重視型動的ML CatchUp
Program
catchup.rb
何するものぞ
3人以上で携帯電話で密なメイル連絡を取るときに便利な簡易MLドライバ。
個々が宛先を気にしなくても常に全員に返事が行く。
要Ruby。要qmail(または同等のアドレス処理機能)。
- 携帯電話の人もちゃんと返事できる
-
Reply-toが処理できない携帯電話でも必ず全員に返すよう
From:を書き換える。
- 紹介制メンバー登録
-
MLのアドレスとその他の宛先に同時に送ると
「その他の宛先」の人もMLに登録される。
QuickMLと似ているが
微妙に違う。次第に合流しながら旅行するときとかに便利。
一定期間が過ぎるとあとから足された人は自動的に解除される。
- ニックネーム管理
-
呪文のような携帯電話アドレスでも,誰か(本人を含む)が
To:のコメントに名前を付けて送信すればその人にMLネームがつき,
次のメイルから名前つきで配信される。
- サブジェクト温存機能
-
パケット代節約のためSubjectを削って送る人(**)がいても
直近のSubjectを覚えておいて自動的にもう一度付け直す。
(**)本当に結構いるのだ。おかげでフォルダが ** no subject **
だらけで悲しい。
最近のemail事情
携帯電話からemailに入った若者はemailの作法を知らんのが多くて泣ける。
そんな昨今、こんなイライラはありませぬか。
「みんなに返せ」
「こりゃ急ぎの方がいいな。A君とB君に、明日打ち合せできないか
聞いてみよう。この時間だと帰宅中かな、携帯のアドレスに送ろう」
To: A君のアドレス, B君のアドレス
Subject: 臨時打ち合せ
--
Yです。明日(水曜) 打合せできませんか。
どうも先方でトラブル発生したみたいです。
私は何時でもOKですので2人の都合で決めて下さい。
「ぽちっとな、お、もう返事来た、早いね最近の若者は。」
From: A君
To: Yさん
Subject: Re:臨時打ち合せ
--
明日午前中なら何時でもOKですよ。
「おお、すばらしい、あ、B君からも来た」
From: B君
To: Yさん
Subject:
--
明日は9時〜11時か、17時以降なら空いてます。
どちらがいいですか。
「あれま、そうかじゃあ、9時からにするかー、ってか、
おめーらわしだけに送り返すな!
2人とも全員に返してりゃそれで完了してるだろ!
携帯電話付属のメイルリーダはタコなのが多いので、送信者だけに
送るのは簡単でもそれ以外がややこしかったりする。かといって、
Reply-toヘッダを付けても効いたり効かなかったり様々(トホホ)。
また後輩や学生が多くなって来るとこんなことが多い。
「ちみだれ」
「お,メイルが来た,なんじゃらほい」
To: Yさん
From: d8a8d328a..--.--xx8787daib...@docomo.ne.jp
Subject: 連絡
--
今日は熱が出たので休みます。
「そうかうつされると困るからなあお大事に,って,おぬし誰じゃ,名を名乗れ!
spam避けとかでながーいアドレスにするのは勝手だが,みんながそんなんだから
誰か分かるわけないわいボケ」と毒づきつつ登録アドレスを調べるのであった。
関係ないがSubjectが「連絡」っちゅーのもどうだろう。情報量ゼロ。
その他にも、
「仲間外れの恐怖」
最初 X, Y さんの2人でドライブに出た。高速道路の
休憩場所とかの連絡を携帯メイルでやってた。ああ便利な時代だねぇ。
途中Zさんが合流。Zさんにもメイル送らなきゃね。
Wさんも合流。Wさんにも送らなきゃね。あれ、
4人全員にメイル送るはずが、古いメイルに
リプライしたらWさんに途中から行かなくなってた!
うわーん、仲間外れ (;_;) ーん、ってか、3〜4人を越えると
ちまちまアドレスを確認するのが面倒くせえYO!
なんてなときにも威力を発揮する。一般的なMLドライバを使えば良さそうだが、
実際のところMLの挙動は「端末がReply-toヘッダにちゃんと従うこと」に
依存している。でも携帯メイルなんてそんなのお構いなしなので
ちっとも返事がMLに返って来ない。
かくなる上は……From:ヘッダ偽造という
禁断の技で解決を謀るしかない。どくいりきけん(うそ)。
つかいかた
固定メンバーのMLとして
たとえばちみのメイルアドレスが taro@example.com だとする。
そしたら拡張アドレス taro-kerai@example.com を作って、
inu kiji saru の3人全員と連絡を取るためのアドレスにしよう、という
ストーリーを考える。inu kiji saru はみーんな携帯電話のアドレス。
そしたら、だまって taro-kerai@example.com に送るだけ。
登録メンバー全員に届く。するとどんなタコな機種で返事を
書いても必ず taro-kerai@example.com に返って来る。めでたし。
From:に名前を
携帯電話付属のMUAにまともなヘッダを付けることは期待できない。
ならばサーバ側で付けてやろう。MLメンバーの登録アドレスを
nickname <real-email@example.com>
のようにしておけば,以後その人からメイルが来たときに
emailアドレスしかFrom:になかった場合nicknameが付加される。
次で述べる動的メンバーのときはもっと簡単で,新規メンバーを足すときの
To:(またはCc:)欄に「ニックネーム <ほんとの@アドレス>」の
形で書けばそれが以後採用される。これで「ちみ誰や」とオサラバ。
動的メンバーのMLとして
拡張アドレス taro-trip@example.com を作って気のあう仲間だけを
登録しておく。んじゃみんなでおでかけ。待ち合わせしよか。この宛先に
送れば仲間全員に届く。返事もみんなに確実に届く。あら、別の人が
参加? じゃあ、その人のアドレスも宛先に追加して送信。はい、
taro-trip@example.com はその人も動的メンバーとして加わる。
動的メンバーはしばらく(標準で1週間)メイルを送って来ないと
自動的にメンバーから外れる。めでたし。
誰に送られてるの?
普段参加してないのにあとからMLに追加された人は誰が
メンバーなのか分からん。そんなときはMLの宛先に
Subject: member
というメイルを送ればヨシ。抜けたかったら、
Subject: off
というメイルを送ればヨシ。だいじょうぶ、あとから入れられた人には
使い方ガイドが送られるから。
インストール
さあ、これ大事。大まかな手順はこんな感じ。
- qmailなサーバを用意する。
-
catchup.rbをどこかに
インストールする(/usr/local/binと仮定)。
-
catchup.rb -install と起動する。
なに1がネック? インストール簡単だって。やってみれ。え、
めんどいとな。じゃ、
うちとか
家系本家とか、
すどさんちとか、
おがわさんちとか、
けーじさんちとか、
いくらでもあるでよ。
おっと話が逸れた。catchup.rb -install したら
以下のように入力していく。
- 作りたいMLアドレス
- 固定メンバーにしたい人のメイルアドレス その1
- 固定メンバーにしたい人のメイルアドレス その2
- 固定メンバーにしたい人のメイルアドレス その3
- :
- :(必要なだけいれる)
- :
- x (おしまいにxだけいれる)
これが終わると、
- From:ヘッダの改ざんもするか?
(Reply-toに従わず送信者に送り返して来るような電話メイルの人が
加入しそうなら y にする)
- Subject空欄は回避するか?
の質問がなされるので適宜答える。最後に、書き出す dot-qmail
ファイル名を聞いて来るので入力する。
で、たとえば、~/.qmail-kerai に書き出されるとすると、
同時に ~/.qmail-kerai-adm-default がシンボリックリンクで
作成される。これは、エラーメイルが帰って来たときに
自動的にエラー発生アドレスを削除するために必要。
dot-qmailファイルの書式
吐き出された dot-qmail を見れば簡単。例えば
taro-keitai@example.comという宛先用に
~/.qmail-keitai を作ってみたのがこんな感じ。
| /usr/local/bin/catchup.rb -F -S -r taro-kerai@example.com
#: MOMO Taro <taro@example.net>
#: inu@example.net
#: kiji@example.org
#: SARUTA monkey <saru@example.com>
そう、固定メンバーを #: のあとに列挙しているだけ。
qmail 本体は # で始まる行は無視するのでエラーにならない。でも
catchup.rb は自分が呼ばれた dot-qmail ファイルを探してそこにある
#: の行をメンバーリストとして利用する。書式は簡単,
手でも書けるっしょ。先にこっち書けばよかった? そうかも。
で、オプションの意味。
| オプション | 意味 |
-F | From:ヘッダをいじくる(携帯電話参加者が
多いときは必須) |
-S | 空っぽなSubject:を回避 |
-s | 自動メンバー登録しない(Static only) |
-r address | このMLの宛先を
明示的に指定(つけた方が無難) |
-f | Reply-Toが既にあっても上書き |
-h Header=Value |
ユーザ定義ヘッダを追加で付ける
(-h X-ML-Name=foo なんてするとよろし) |
-e expire
| 自動登録メンバーを(最後の発言から)何秒後に
登録解除するか(y m d h を後置すると年月日時指定) |
-install | dot-qmailファイルの
インストール |
-d dir |
dot-qmailファイルを書き出すディレクトリを指定(-installで使う) |
他のMTAで使いたい
courier-mta ならほぼそのまま動くはず。Postfixでも拡張アドレスとVERPは
使えるので情報もらえればすぐ直せるはず。御相談を。
890
yuuji@gentei.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji -
ASTROLOGY /
BIKE /
BILLIARDS
/
EPO /
GUEST BOOK
/
YaTeX