- blogs:
- cles::blog

メーリングリストドライバいろいろ
仕事の関係でメーリングリストサービスを作ろうと思っています。
問題はそれをどうやって実現するかということになるのですが、僕個人としてはこれまでたくさんのメールサーバとか、メーリングリストとか、メールフィルタとかを作ってきた経験があるので、いちおう世の中には既に様々なメーリングリストドライバ*1があることは知っています。
なるべくなら車輪の再発明のようなことはしたくないというのが本音だけれど、今回はさすが要件がきついので特別に何か作らないといけなさそうな感じがしています。
† 問題はエラーメールと、受信メール
MLドライバをインストールしたことがある人はご存知だと思いますが、メーリングリストの仕組みは送信より、受信のほうがいろいろと面倒くさい仕組みになっています。
実装(インストール方法)にもよりますが、ほとんどの場合はメールが1通来るたびに、サーバに新しいプロセスが生成されてメールが処理される仕組みになっています。Web系のシステムで例えると、ちょうど一昔前のPerlとかCで書かれたCGIのようなイメージになります。投稿数が多いようなメーリングリストの場合には断続的にプロセスの生成が行われることになるため、サーバにとってかなりの負荷になります。
CGIの高負荷問題は現在はウェブアプリケーションサーバが主流になったこともあって、だいぶ改善されたと思います。メールにおけるこの問題は依然として解決されていないので、今回のミッションはウェブでのこのアプローチをメールにどうやって応用するかというのがポイントです。
† ということでApache James

今日はその件で、あるエンジニアとミーティングしました。そこでその人が薦めてくれたのがApache James。
伊藤 滋伸
新紀元社
・4Gbpsを超えるWebサービス構築術
・[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)
・Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
確か、jakartaのサブプロジェクトだったと思っていたのですが、いつの間にかApacheのトッププロジェクトに格上げされていたのですね。hsurもjamesという名前とmailetという概念くらいは押さえていたのですが、実践投入するような案件もなかったのですっかり忘れてしまっていました。
個人的にも興味があるので、そのエンジニアとその場で意気投合。とりあえずこの線で開発を進めることになりました。これは面白いプロジェクトになりそうです。
とりあえず、何にもわからないことからのスタートになるので早めにテスト機にインストールしていろいろ遊んでみよう。いろいろノウハウがたまったら改めて書きたいと思います。
† hsurが実際に運用したことのあるMLドライバ
メーリングリストドライバでよく使われているのは以下のようなモノでしょうか。
古くからあるMLドライバ。枯れていて可もなく不可もなくといった感じ。利用者が多いのでトラブルシュートなどの情報には事欠かないことが利点か。
国産で情報も多い。プログラム本体はPerlで開発されているが、そのコードは整然としており非常に読みやすい。昔、DB対応を頼まれたことがあった時にいろいろいじったのだけれども、きちんと整理されているコードに非常に感銘を受けた。Perlのプロダクトは汚いという常識を吹っ飛ばしてくれる良作。読みにくいコードはプログラムは言語機構から生まれるわけではなく、プログラマの力量によって左右されるということを再確認させてくれる。作者の深町さんが書いているfmlバイブルは内容も濃くてHackのお供にオススメです。
個人的には最近これを多く使っている。ウェブインターフェースが充実していて、MLの作成、設定の変更、メールアーカイブの設定がすべてウェブから行えるので、シェルが使えない人へ管理者を任せることもできる。ただ、機能が豊富な分設定は面倒なことも多い。Pythonで書かれているのもHackしたい人には要チェック*2なところかもしれない。
DJBの作ったMLドライバ。他のDJBツールと同じく少し癖がある。個人的にツールを単独でインストールしたことはない*3。
- *1: メーリングリストを運営するためにサーバ側で利用するソフトのこと。
- *2: 国内ではPython人口がそんなに多くないので、機能で文句が出なくてもPythonというところで文句が出る場合も多い
- *3: hsurはqmail+vpopmail+qmailadminという構成なので、その関係で使っている
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/289
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112717)
3 . 年次の人間ドックへ(112174)
4 . 2023 年分の確定申告完了!(1つめ)(111741)
5 . 三菱鉛筆がラミーを買収(111620)