メーリングリストを作る(Majordomo)


Majordomo とは

Majordomo はメーリングリストサーバであり、sendmail が動いている メールサーバでメーリングリストを運用するのによく使われるソフトウェ アです。。以下に Majordomo の特徴を示します。

Majordomo のインストール

ダウンロート

現在、Majordomoのバージョンは 1.94.4 と 2.x があります。 2.x は開発バージョンですので、今回は 1.94.4 をインストールします。
以下の URL
ftp://ftp.greatecircle.com/pub/majordomo/
ftp://ftp.sgi.com/other/majordomo/1.94.4/
ftp://ftp.win.ne.jp/pub/network/mail/majordomo/1.94.4/
より、majordomo-1.94.4.tar.gz を入手します。

確認

Majordomo をインストールするためには、Perl 4.036 か Perl 5.002 以 上が必要です。使用している Perl のバージョンを知りたいときは、
% perl -v
として下さい。ドキュメントによれば、「将来は Perl 4.x では動作しな い予定」とのことなので、もし Perl 4.x しかインストールしていない場 合には、この機会に Perl 5.x をインストールしておきましょう。 入手は各 Anonymous FTP サイトから可能である。例えば以下の URL から入手できます。
ftp://ftp.digital.com/pub/plan/perl/CPAN/src/5.0/

インストール

ここでは、Majordomo を FreeBSD-2.2.8Release が動作している計算機に インストールします。
取得した majordomo-1.94.4.tar.gz を展開します。
% tar xvfz majordomo-1.94.4.tar.gz
% cd majordomo-1.94.4

メーリングリストの作成

名称を決める

最初にメーリングリストの名前を決めます。名前に使用できるのは、 英字、数字、ハイフン"-"、アンダーバー"_"です。名前には、英字の 大文字/小文字を用いることもできますが、電子メールの世界ではこれら を区別しないので注意してください。
ここでは、研究室用に名前を"funada-lab"とします。

メンバーリストファイルの作成

メーリングリストの名称を決定したら、メーリングリストのメンバーを登 録するファイルを作成します。ファイル名はメーリングリストの名前を用 います。なお、作成する場所は majordomo.cf で定義した $listdir(/usr/local/majordomo/lists)以下に作成します。 以下にその手順を示します。
% su - majordom
Password:
$ cd lists
$ touch funada-lab
$ chmod 664 funada-lab

インフォメーションファイルの作成

Majordomo では info コマンド(後述)によりユーザはメーリングリストの説明文 をメールで自動的に取り寄せることができます。Majordomo サーバはユー ザから info の要求を受けると、$listdir ディレクトリに用意されている、 「メーリングリスト名.info」というファイルを説明文として送付します。 このファイルには、メーリングリストの説明文を書いておきます。
% su - majordom
Password:
$ cd lists
  ML名.info ファイルを編集
$ chmod 664 ML名.info
なお、日本語の場合、例えば以下のようにして、漢字コードを JIS にしておきます。
$ nkf -j ML名.info > ML名.info.jis
$ mv ML名.info.jis  ML名.info

イントロファイルの作成

次に、ユーザから Majordomo サーバに発行される intro コマンド(後述)に対し て送付するファイルを「メーリングリスト名.intro」という名前で 用意します。このファイルは Majordomo サーバが、参加登録を終えたユー ザに対し最初に送信するメールに添付するものです。このファイルには メーリングリストの内容紹介だけでなく、Majordomo サーバが許可してい るコマンドおよび投稿に対する諸注意などを解説した、事実上のマニュアル に相当することを記述します。
% su - majordom
Password:
$ cd lists
  ML名.intro ファイルを編集
$ chmod 664 ML名.intro
同様に、日本語の場合、漢字コードを JIS にします。

管理者用パスワードの設定

Majordomo では、メーリングリストの管理者が電子メールを使ってメーリ ングリスト自身の設定を行えるようになっています。この場合は、管理者専 用のコマンド(後述)を使うために、パスワードを指定する必要があります。 管理者のパスワードは $listdir ディレクトリに 「メーリングリスト名.passwd」というファイルを用紙し、そこに記述し ます。なお、このファイルには以下のようにパーミッションを設定します。
% su - majordom
Password:
$ cd lists
  ML名.passwd ファイルを編集
$ chmod 660 ML名.passwd

エイリアルファイルの設定

エイリアスファイル(/etc/aliases)を編集します。以下のような記述を /etc/aliases に追加します。ML名は funada-lab です。
# vi /etc/aliases
以下の記述を追加
funada-lab:			"|/usr/local/majordomo/wrapper resend -l funada-lab -h oak.eg.t.kanazawa-u.ac.jp lab-members
owner-funada-lab:		sakai
lab-members:			:include:/usr/local/majordomo/lists/funada-lab
funada-lab-request:		"|/usr/local/majordomo/wrapper request-answer funada-lab
owner-funada-lab-request:	owner-funada-lab
funada-lab-approval:	   	owner-funada-lab
追加後、newaliases を実行
# newaliases
上記の /etc/aliases で resend コマンドを呼び出していますが、この resend コマンドは、受け取ったメールのヘッダなどの書き換えを行います。
オプションには、以下のようなものがあります。 以上で、メーリングリストの作成は終了です。実際に info,intro,subscribe などの コマンドを発行してみて、動作を確認します。また、メーリングリストにもメールを 出してみて、動作を確認します。

Subject:フィールドのカスタマイズ

ここでは、Subject:フィールドとして、ML名とシーケンス番号が入った、 以下のような形式
Subject: [funada-lab 123] .....
となるような設定を行います。
まず、カウントするファイルを準備します。カウント用のファイルは、 $listdir に「メーリングリスト名.seq」というファイル名で作成します。
% su - majordom
Password:
$ cd lists
$ vi ML名.seq
  ML名.seq ファイルを作成。内容は単に "1" とだけ記述する
$ chmod 664 ML名.seq
次に、majordom のホームディレクトリ以下の Tools ディレクトリにある sequencer スクリプトを、ホームディレクトリにコピーします。
$ cd /usr/local/majordomo
$ cp Tools/sequencer .
次に、メーリングリストのコンフィグレーションファイルである、 「メーリングリスト名.config」を編集します。以下のように編集します。
$ cd /usr/local/majordomo/lists
$ vi ML名.config
以下のような設定にする
subject_prefix = [$LIST $SEQNUM]
その後、resend から sequencer に切り替えるために /etc/aliases ファイルを 編集します。以下のような記述に変更します。
# vi /etc/aliases
funada-lab:			"|/usr/local/majordomo/wrapper sequencer -l funada-lab -n -h oak.eg.t.kanazawa-u.ac.jp lab-members
owner-funada-lab:		sakai
lab-members:			:include:/usr/local/majordomo/lists/funada-lab
funada-lab-request:		"|/usr/local/majordomo/wrapper request-answer funada-lab
owner-funada-lab-request:	owner-funada-lab
funada-lab-approval:	   	owner-funada-lab
追加後、newaliases を実行
# newaliases
以上で設定は終了です。実際にメーリングリストにメールを出し、Subject:フィールド を確認します。

アーカイブファイルの作成

メーリングリストのアーカイブを作るには、majordom のホームディレクトリにある archive2.pl スクリプトを使用します。
archive2.pl のオプションを以下に示します。 アーカイブファイルを置くディレクトリは、majordom のホームディレクトリにある majordomo.cf ファイルで、デフォルトでは以下のように定義されています。
$filedir = "$listdir";
$filedir_suffix = ".archive";
今回は、上記の設定を使用します。これにより、$listdir 以下に 「メーリングリスト名.archive」というディレクトリが、アーカイブ用の ディレクトリになります。
まず、以下のようにして、アーカイブファイルを置くディレクトリを作成します。
% su - majordom
Password:
$ cd lists
$ mkdir ML名.archive
次に、/etc/aliases ファイルを編集します。以下のような記述に変更します。
# vi /etc/aliases
funada-lab:			"|/usr/local/majordomo/wrapper sequencer -l funada-lab -n -h oak.eg.t.kanazawa-u.ac.jp lab-members
owner-funada-lab:		sakai
lab-members:			:include:/usr/local/majordomo/lists/funada-lab , funada-lab-archive
funada-lab-request:		"|/usr/local/majordomo/wrapper request-answer funada-lab
owner-funada-lab-request:	owner-funada-lab
funada-lab-approval:	   	owner-funada-lab
funada-lab-archive:		"|/usr/local/majordomo/wrapper archive2.pl -f /usr/local/majordomo/lists/funada-lab.archive -a -m
owner-funada-lab-archive:	owner-funada-lab
追加後、newaliases を実行
# newaliases
以上で設定は終了です。実際にメーリングリストにメールを出し、アーカイブファイル (上記の例では、例えば funada-lab.9906)が作成されるかどうかを確認します。

mlist2htmlの導入

MLに送られたメールを Web 上で見られるようにする方法のひとつに、 mist2html があります。
以下のURL
http://www.y-min.or.jp/~nob/ML/mlist2html.html
に、mlist2html についての情報がのっています。
この mlist2html は Perl で書かれたスクリプトで、MHonArc というソフトウェアを 起動しているため、あらかじめ MHonArc を導入しておきます。
MHonArc は、メールを HTML形式に変換するソフトウェアで、以下のサイトに情報が あります。 http://www.oac.uci.edu/indiv/ehood/mhonarc.html
実際の入手は、次の CPANサイトから行います。
http://www.perl.com/CPAN/authors/id/EHOOD/
上記の URL より、最新の MHonArc を入手します。今回は、MHonArc2.4.6.tar.gz を 入手しました。入手後、適当なディレクトリで解凍・展開してディレクトリを 移動します。
% tar xvfz MHonArc2.4.6.tar.gz
% cd MHonArc2.4.6
付属の INSTALL を読み、インストールを行います。以下のように実行し、 質問に答えます。
% su
Password:
# perl install.me
Pathname of perl executable: ("/usr/local/bin/perl") 
Directory to install executables: ("/usr/local/bin") 
Directory to install library files: ("/usr/local/lib/perl5/site_perl/5.005") /usr/local/lib/MHonArc
"/usr/local/lib/MHonArc" does not exist.  Create ['y']
Directory to install documentation: ("/usr/local/doc/MHonArc") /usr/local/share/doc/MHonArc
"/usr/local/share/doc/MHonArc" does not exist.  Create ['y'] 
Directory to install manpages: ("/usr/local/man") 
You have specified the following:
        Perl path: /usr/local/bin/perl
        Bin directory: /usr/local/bin
        Lib directory: /usr/local/lib/MHonArc
        Doc directory: /usr/local/share/doc/MHonArc
        Man directory: /usr/local/man
Is this correct? ['y'] 
以上で、MHonArc のインストールは終了です。
次に、mlist2html を入手し、上記の質問事項に合わせて、以下の部分を変更します。
% wget http://www.y-min.or.jp/~nob/ML/mlist2html
変更箇所
211> $mhonarc    = '/usr/local/bin/mhonarc';
212> $mhlib	 = '/usr/local/lib/MHonArc';
今回は、上記の質問でこの記述に合わせたので、変更はしていません。
パーミッションを設定します。
% chmod 755 mlist2html
また、mlist2html の中で使っている common.rc や mlist_name.rc で、MHonArc のいろいろな動作を 設定します。
以下のURL
http://www.y-min.or.jp/~nob/ML/mhonarc_rc.html
を参考にして、common.rc ファイルを作成し、MHonArc の Lib Directory (/usr/local/lib/MHonArc) の下に置きます。
common.rcを作成
# cp common.rc /usr/local/lib/MHonArc
ここで、適当なメールを mlist2html に通してみます。例えば以下のように実行します。
mail_file は適当なメールファイル、ml_name は MLの名前です。 % nkf -me < mail_file | ./mlist2html /tmp ml_name Reading resource file: /usr/local/lib/MHonArc/common.rc ... Adding message to tmp/ml_name/200005 Writing mail . Writing tmp/ml_name/200005/index.html ... Writing tmp/ml_name/200005/threads.html ... Writing database ... 1 messages 上記により、/tmp/ml_name 以下に HTML形式のファイルが作成されます。

うまくHTML形式に変換できているようなら、/etc/aliases ファイルを編集します。 mlist2html を /usr/local/bin にコピーし、以下の1行を /etc/aliases に追加します。
# cp mlist2html /usr/local/bin/
# vi /etc/aliases
以下の1行を追加
"| /usr/local/bin/nkf -me | /usr/local/bin/mlist2html HTML_archive_derectory ml_name"
HTML_archive_directory : HTMLファイルを保存するパス名
ml_name                : メーリングリストの名前
# newaliases

戻る

sakai@oak.eg.t.kanazawa-u.ac.jp
Last modified: Thu Jun 22 21:07:38 JST 2000