【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷


第4回 メーリングリストの構築と運用(前編)

鶴長 鎮一
2001/12/11

大規模MLの構築:ezmlmの利用

 .qmailファイルや拡張アドレスによる運用において、一般的なMLのようにサブジェクトに通し番号を付けるといったメールヘッダの加工や、送信者や流通するメールに制限を加えたりするには、意図する処理をスクリプトにまとめて.qmailまたは.qmail-○○ファイルの1行目にスクリプトが実行されるような記述を行います。

|処理スクリプトを絶対パスで記入
&メールアドレス1
&メールアドレス2
.qmail-○○ファイルの記述例

 MLに必須の処理がパッケージ化されていればどれだけ助かることでしょう。ここで紹介するezmlm(http://www.ezmlm.org/)はその要望を十分に満たします。ezmlmはqmail同様D. J. Bernstein氏により作成されたもので、当然qmailのMaildirにも対応し、fmlやMajordomoに比べ管理も容易です。

 では、ezmlmを利用して次のような規模を想定したMLを作成してみましょう。

目的: コミュニティの構築(登録・退会が自由に行える)
参加人数: 1000人程度
参加者の変動具合: 日に数十回(頻繁に行われる)
配信頻度: 100通以下/日

 fmlやMajordomoにもいえることですが、ML支援ツールがメール配信の性能を左右していると誤解される傾向があります。しかし、これらのソフトは配信そのものには関与しません。登録者の追加・削除やアーカイブ機能の提供など、MLの運営を手助けするものであり、ezmlmをインストールしたからといって配信速度が向上することはありません。コアの性能はqmailなどのMTAに依存することを忘れないでください。また、メールヘッダの書き換えも大事な処理です。コラム「Envelope・Header・Data」を必ずお読みいただき、配信の仕組みにHeaderデータがどのように関与し、ループなどの障害を防ぐためにHeaderデータをどのように書き換える必要があるのかを理解しておきましょう。

ezmlmのインストール

 では、ezmlmのソースを

ftp://ftp.jp.qmail.org/ezmlm/ezmlm-0.53.tar.gz

から入手してインストールします。

# tar xvfz ezmlm-0.53.tar.gz
# cd ezmlm-0.53
# make
# make man
# make setup

 これで、/usr/local/bin/ezmlm下にezmlmがインストールされました。インストールパスを変更したい場合は、「conf-bin」ファイルを編集してインストール先を記述します。

スーパーユーザーによるMLの作成

 ではMLを作成してみましょう。まずはスーパーユーザーで作業します。

# /usr/local/bin/ezmlm/ezmlm-make 設定ファイルの保存先 /var/qmail/alias/.qmail-ML名 ML名 自ドメイン

設定ファイルの保存先: /var/ezmlm/ML
ML名: ML
自ドメイン: example.jp

とした場合は、

# /usr/local/bin/ezmlm/ezmlm-make /var/ezmlm/ML /var/qmail/alias/.qmail-ML ML example.jp

となります。以降は上記の例に従うとします。このコマンドにより、「設定ファイルの保存先」にアーカイブ保存用のディレクトリや設定ファイルが作成されます。同時に、次のファイルも作成されます。

  • /var/qmail/alias/.qmail-ML
  • /var/qmail/alias/.qmail-ML-owner
  • /var/qmail/alias/.qmail-ML-return-default
  • /var/qmail/alias/.qmail-ML-default

 この後、「設定ファイルの保存先」のオーナーを「alias」に変更することを忘れずに行います。

# chown -R alias /var/ezmlm/ML

 ezmlm-make実行の際、下記のオプションを指定することでMLへの制限や拡張を加えることができます。

  -a アーカイブを保存する(*)
  -A アーカイブを保存しない
  -p 公開MLとする(*)
  -P 公開しない
  「*」はデフォルトで有効になっているもの

 MLが作成できたので、MLに登録してみましょう。「ML-help@example.jp」あてに空のメールを送ると、次のような案内メールが返ってきます。

Hi! This is the ezmlm program. I'm managing the
ML@example.jp mailing list.

This is a generic help message. The message I received wasn't sent to
any of my command addresses.


--- Here are the ezmlm command addresses.

I can handle administrative requests automatically.
Just send an empty note to any of these addresses:

   <ML-subscribe@example.jp>:
   Receive future messages sent to the mailing list.

   <ML-unsubscribe@example.jp>:
   Stop receiving messages.

   <ML-get.12345@example.jp>:
   Retrieve a copy of message 12345 from the archive.
--以下省略--

 このメッセージ中に示された登録用のアドレスにメールを送ることで、自動登録の手続きが始まります。コントロールアドレスには次のものが用意されています。

  ML名@自ドメイン 投稿用アドレス
  ML名-subscribe@自ドメイン 登録用アドレス
  ML名-unsubscribe@自ドメイン 退会用アドレス
  ML名-get.123@自ドメイン 特定メーセージ取出し用アドレス
  ML名-help@自ドメイン 案内メッセージ用アドレス
  ML名-request@自ドメイン 「ML名-help@自ドメイン」と同じ

 管理者が手動でユーザーを登録する場合は次のようにします。

# /usr/local/bin/ezmlm/ezmlm-sub 設定ファイルの保存先 登録者のアドレス1 登録者のアドレス2 登録者のアドレス3...

 今回の例では次のようになります。

# /usr/local/bin/ezmlm/ezmlm-sub /var/ezmlm/ML user1@XXXX user2@XXXX user3@XXXX ...

 管理者側で登録者を削除するには次のようにします。

# /usr/local/bin/ezmlm/ezmlm-unsub /var/ezmlm/ML user1@XXXX

一般ユーザーによるMLの作成

 以上の方法ではスーパーユーザーによる作業が必要ですが、一般ユーザーでもMLを構築することができます。ただし一般ユーザーの場合、MLの名前に指定できるのはユーザーが持っているメールアドレスに対する拡張アドレスのみです。例えば、メールアドレスuser1@example.jpを持つユーザー「user1」が作成できるMLのアドレスは「user1-ml@example.jp」のようなuser1-○○@example.jpという形式になります。

 では、user1がuser1-ml@example.jpを作成する例を見てみましょう。

  設定ファイルの保存先: ~/ml
  ML名: user1-ml
  自ドメイン: example.jp

とした場合は、

$ /usr/local/bin/ezmlm/ezmlm-make -AP ~/ml ~/.qmail-ml user1-ml example.jp

となります。ここではアーカイブの保存をせず、勝手に登録がされないような非公開MLになるようにオプションを指定しました。ファイルのオーナー変更は必要ありません。残りの作業は先ほどのスーパーユーザーの作業と同じになります。

まとめと次回予告

 ezmlmには、MLの可用性を高めるためのさまざまなパッチが用意されています。インストールはezmlm同様極めて簡単ですが、運用が複雑になるので今回紹介した機能で事が足りているならパッチを当てる必要はありません。

 しかし、ユーザーはわがままです。一度は満足したとしても、機能拡張にどん欲です。そんなときが訪れる日のことを考えて、次回はezmlmをさらに便利に使う方法を紹介します。

3/4

Index
実用qmailサーバ運用・管理術
  Page 1
ML運用計画を立てる
  Page 2
小規模MLの構築:.qmailによる拡張アドレスの使用
 スーパーユーザーによるMLの作成
 一般ユーザーによるMLの作成
  Page 3
大規模MLの構築:ezmlmの利用
 ezmlmのインストール
 スーパーユーザーによるMLの作成
 一般ユーザーによるMLの作成
まとめと次回予告
  Page 4
コラム:Envelope・Header・Data

連載 実用qmailサーバ運用・管理術


 Linux Squareフォーラム サーバ構築・運用関連記事
連載:Heartbeatでかんたんクラスタリング(連載中)
オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します
特集:Apache 2.2でWebサイトをパフォーマンスアップ!
最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する
連載:実用 Apache 2.0運用・管理術(全8回)
本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える
連載:実用 BIND 9で作るDNSサーバ(全15回)
本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく
連載:実用qmailサーバ運用・管理術(全14回)
本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで
特集:Samba 3.0の全貌 改訂版
Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

ホワイトペーパーTechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)



- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています