ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

メーリングリストの設定と利用

 ここでは、majordomoを利用したメーリングリストの作成と運用について解説します。 majordomoを使うことで、サブジェクトに特定の文字列を追加したり、返信先を指定したりできます。

majordomoのインストール

 majordomoを入手し、インストールします。

バージョン情報

 majordomo-1.94.4(2000/1/10)

入手方法

 ftp://ftp.greatcircle.com/pub/majordomo/

ユーザを準備する

 majordomoの運用のために、majordomというユーザを作成します。(8文字に収めるために最後のoを省いてあります) UIDは5004、GIDは5000、envグループとします。

Linux# adduser

アーカイブを展開

 入手したソースを展開します。

Linux# cd /usr/local/src/
Linux# zcat ../pub/majordomo-1.94.4.tar.gz | tar -xvf -
Linux# cd majordomo-1.94.4/

Makefileを修正

 入手したソースを展開します。

Linux# vi Makefile

 Makefileの修正点は以下の個所です。環境に合わせて設定して下さい。 W_USER、W_GROUPは作成したmajordomのユーザIDとグループIDです。

Makefileの修正点
PERL = /usr/local/bin/perl

W_HOME = /usr/local/majordomo

W_USER = 5004
W_GROUP = 5000

W_PATH = /bin:/usr/bin:/usr/local/bin

majordomo.cfの編集

 設定ファイル、majordomo.cfを編集します。 なお、majordomo.cfは、Makefileで指定したW_HOMEディレクトリにコピーされ、インストール後でも修正可能です。

Linux# cp sample.cf majordomo.cf
Linux# vi majordomo.cf

 majordomo.cfの修正点は以下の個所です。環境、運用方針に合わせて設定して下さい。

majordomo.cfの修正点
$whereami = "ash.jp";

$homedir = "/usr/local/majordomo";

$digest_work_dir = "$homedir/digest";

$sendmail_command = "/usr/sbin/sendmail";

majordomoのmakeとインストール

 設定ファイルの編集が終わったら、makeします。

Linux# make install

Linux# make install-wrapper

Linux# cd /usr/local/majordomo
Linux# mkdir lists
Linux# chown majordom.env lists

 コンフィグのテストもします。

Linux# cd /usr/local/majordomo
Linux# ./wrapper config-test

aliasesの修正

 aliasesに、majordomoを動作させるための設定を追加します。 なお、newaliasesコマンドを使わないと変更が反映されませんので注意してください。

Linux# vi /etc/aliases
Linux# newaliases

 aliasesの修正点は以下の個所です。 ownerには、管理者のメールアドレスを書いて下さい。

aliasesの修正点
majordomo: "|/usr/local/majordomo/wrapper majordomo"
owner-majordomo: sys
majordomo-owner: sys

自動起動の設定

 majordomoはメールの到着をキーにして動作するので、特別な設定は不要です。

メーリングリストの作成

 majordomoで動作するメーリングリストを作ります。 今回はtestmlという名前のメーリングリストを作るとして解説します。

リストを作る

 メールを配送するリストを作成します、最初は自分のメールアドレスだけ書いておけばいいでしょう。
 なお、リストは小文字で登録するべきです。大文字のアドレス(ここではTESTML@ash.jp)でも配送されます。

Linux# cd /usr/local/majordomo/lists/
Linux# vi testml

 rootなどで作業していた場合は、リストのオーナーを変更する必要があります。

Linux# chown majordom.env testml

 MLの説明(testml.info)と登録者に送られる説明メールの内容(testml.intro)を作る。 (別になくてもかまいません)

Linux# vi testml.info
Linux# vi testml.intro

aliasesに追加する

 aliasesに、メーリングリスト用の設定を追加します。 なお、newaliasesコマンドを使わないと変更が反映されませんので注意してください。

Linux# vi /etc/aliases
Linux# newaliases

 aliasesの修正点は以下の個所です。 ownerには、管理者のメールアドレスを書いて下さい。

aliasesの修正点
#Mailing List (testml)
testml:"|/usr/local/majordomo/wrapper resend -l testml testml-list"
testml-list::include:/usr/local/majordomo/lists/testml
testml-request:owner-testml
testml-owner:owner-testml
owner-testml:xxxxxx

動作実験

 testmlあてにメールを出してみます。そのメールが自分に返ってくればとりあえずOKです。

メーリングリストの設定変更

 メーリングリストの運用方法に合わせて、設定を変更します。 testmlの設定を変更する場合の例です。

コンフィグファイルを書き換える

 最初にメールを出したとき、/usr/local/majordomo/lists/下に、testml.configが作成されているはずですので、それを修正します。

Linux# cd /usr/local/majordomo/lists/
Linux# vi testml.config

 以下に、configファイルの設定例を示します。

configファイルの修正ポイント(例)

reply_to   =  testml@ash.jp
	Reply-To: address というheaderを付けます。 


subject_prefix  =  [testml]
	サブジェクトに、指定の文字列を追加する処理です。


restrict_post = ファイル名 
	そのMLへメールを出すことができるアドレスを指定します。
	ファイルに書かれたアドレスからしかpostができなくなります。
	ここへML本体を指定すると、参加者しかメールを出せません。 

maxlength = byte数 
	MLに流せるmailの大きさを設定します。defaultは40000。 

連番機能を使う

 メーリングリストに連番をつける方法です。majordomoに付属しているsequencerというプログラムを利用します。 少し設定が複雑になります。

sequencerを準備する

 majordomoのhome(ここでは/usr/local/majordomo)下の、Toolsというディレクトリにあるsequencerをmajordomoのhomeにコピーします。 ファイルの実行権を確認しておきましょう。

Linux# cd /usr/local/majordomo/Tools/
Linux# cp sequencer ../.

番号を記録するファイルを作る

 testml.seqというファイルを作り、1とだけ書いておきます。 このファイルを編集すれば、数値を初期化することも可能です。

Linux# cd /usr/local/majordomo/lists/
Linux# vi testml.seq

 rootなどで作業していた場合は、ファイルのオーナーを変更する必要があります。

Linux# chown majordom.env testml.seq

configファイルを修正する

 連番をsubjectに記入するようにconfigファイルを設定します。

Linux# vi testml.config

 以下が、configファイルの修正点です。 [testml 1]というかたちで連番がつきます。

configファイルの修正ポイント
subject_prefix  =  [testml $SEQNUM]

aliasesを修正する

 sequencerを使うように、aliasesの設定を変更します。 なお、newaliasesコマンドを使わないと変更が反映されませんので注意してください。

Linux# vi /etc/aliases
Linux# newaliases

 aliasesの修正点は以下の個所です。

aliasesの修正点
testml:"|/usr/local/majordomo/wrapper resend -l testml testml-list"
 この行を、下記のように書き換えます。
testml:"|/usr/local/majordomo/wrapper sequencer -l testml -n -h ash.jp testml-list"


Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp