kilin> how to> majordomo

majordomoをinstall

(2001.09.30, 2002.02.16, 2006.12.09, 2007.2.24)

有名なメーリングリストmajordomoを使ってみたくなったが,インストールにてこずったので,majordomoのインストールから使いはじめまでをメモしておくことにした.また,これを機にホームページKilinにWindowsとLinuxのHOWTOシリーズを公開していくこととした.ただし,ここに書いたインストール方法が正しく安全かどうかは,よくわかりません.
(環境) Fedora Core 6, CentOS 5.2, majordomo 1.94.5

majordomoを動かすためのユーザーの追加

rootになる.
$ su
パスワード(P):
majordomoを動かすためのuserをつくる.所属groupはmail.user名は何でも可.ここではmlistとする.
# /usr/sbin/useradd -g mail mlist
ユーザーmlistのパスワードを設定.
# passwd mlist
ユーザーmlistに切り替える.以下では#はrootでの操作,$はmlistでの操作.
# su mlist
ホームディレクトリの属性を変更.
$ cd
$ cd ..
$ chmod 755 mlist
ホームディレクトリにlistsディレクトリを作る.
$ cd
$ mkdir lists

majordomo-1.94.5.tar.Zの展開

majordomo-1.94.5.tar.Z,(コピー)をmlistのホームディレクトリへコピー.
$ ftp greatcircle.com
Name (greatcircle.com:mlist): anonymous
Password:
ftp> cd pub/majordomo/1.94.5
ftp> binary
ftp> get majordomo-1.94.5.tar.Z
ftp> quit
majordomo-1.94.5.tar.Zを展開.
$ tar zxvf majordomo-1.94.5.tar.Z
展開したディレクトリへ移動.
$ cd majordomo-1.94.5

Makefileの修正

rootでvipwでmlistのuser idとgroup idを確認.
$ exit
# /usr/sbin/vipw
mlist:x:502:12::/home/ml:/bin/bash
# su mlist
perlのpathを確認.
$ whereis perl
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz
Makefileの修正
$ vi Makefile
perlのpathを修正.
PERL = /usr/bin/perl

W_HOMEを修正.
W_HOME = /home/majordomo-$(VERSION)

manを修正.
MAN = /usr/man

W_USERとW_GROUPをmlistのuser id,group idに修正.
W_USER = 530
W_GROUP = 12

W_PATHを修正.
W_PATH = /bin:/usr/bin:/usr/local/bin

majordomo.cfの作成

sample.cfをmajordomo.cfにコピー.
$ cp sample.cf majordomo.cf
majordomo.cfを修正.
$vi majordomo.cf
majordomoを動かすhost名
$whereami = "ws.u-shizuoka-ken.ac.jp";

mailing listを置く場所
$listdir = "/home/mlist/lists";

ログを置く場所
$log = "/home/mlist/Log";

sendmailの場所
$sendmail_command = "/usr/sbin/sendmail";

archiveする場所はdefaultでは/usr/local/mail/lists/(ML).archive.
archiveする場所をたとえば/usr/spool/archive/以下に変更するときは

$filedir = "/usr/spool/archive/";
$filedir_suffix = "";(sufixをつけない場合)

make & install

mlistで
$ make wrapper
rootで
$ exit
# make install
errorが出た場合は
# make clean
してからMakefileを修正して,もう一度
# make install.
rootで
# make install-wrapper
mlistに戻る.
# su mlist
/home/majordomo-1.94.5に移動.
$ cd /home/majordomo-1.94.5
sequencerをコピー.
$ cp Tools/sequencer .

installのテスト

/home/majordomo-1.94.5でインストールのテスト.
$ ./wrapper config-test
このように表示されればOK.

sendmailの調整

Fedora Core 6付属のsendmailの標準設定ではローカルからのメールしか受信を受け付けないように設定されているので,外部からのメールも受け付けるようにsendmail.mcを変更し,sendmail.cfに反映する.
rootで設定ツールsendmail-cfをインストール.
$ exit
# yum install sendmail-cf
sendmail.mcを変更.
# cd /etc/mail
# vi sendmail.mc
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

「,Addr=127.0.0.1」をトル

local-host-namesファイルにドメインを追加.
# vi local-host-names
ws.u-shizuoka-ken.ac.jp
sendmail.cfを作成.
# mv sendmail.cf sendmail.cf.org
# m4 /etc/mail/sendmail.mc > sendmail.cf
sendmailを再起動.
# /etc/rc.d/init.d/sendmail restart

aliases

/etc/smrsh/ に,wrapper のシンボリックリンクを張る.
# ln -s /home/majordomo-1.94.5/wrapper /etc/smrsh/wrapper
aliasesファイルの末尾にmajordomoを追加.
# vi /etc/aliases
majordomo: "|wrapper majordomo"
majordomo-owner: mlist
owner-majordomo: mlist
aliasesの変更を有効にする.
# newaliases

動作テスト

以上でインストール終了
majordomo@ws.u-shizuoka-ken.ac.jp宛てに本文がhelpのメールを出して動作を確認.
このようなメールが返ってくればOK.

メーリングリストのテスト

メーリングリストを作って動作を確認する.ここではtestという名前のメーリングリストを作る.
aliasesファイルを編集.
# vi /etc/aliases
test: "|wrapper resend -l test test-list"
test-list: :include:/home/mlist/lists/test
owner-test: mlist
test-owner: mlist
test-request: mlist
aliasesの変更を有効にする.
# newaliases
rootをぬけlistsへ移動.
# su mlist
$ cd
$ cd lists
メーリングリストと同じ名前のファイルtestをlistsのなかにつくり,メーリングリストのメンバーのメールアドレスを改行で区切って書き並べる.パーミッションは以下のようであればよい.普通にviでつくれば(ftpで転送すれば)このようになる.
$ ls -l test
-rw-r--r-- 1 mlist mail 0 Sep 30 10:40 test
test@ws.u-shizuoka-ken.ac.jp宛てにメールを出して動作を確認.

メーリングリストのカスタマイズ

件名に[リスト名:連番]をつける.
容量制限の緩和.
返信先をメーリングリストにする.
件名がないメールへの対応
返信時に[リスト名:連番]がいくつも重ならないようにする.
/etc/aliasesファイルをrootで編集.
# vi /etc/aliases
#test: "|wrapper resend -l test test-list"
test: "|wrapper sequencer -l test -n -h ws.u-shizuoka-ken.ac.jp test-list"
aliasesの変更を有効にする.
# newaliases
listsディレクトリにできたtest.configを編集.
# su mlist
$ vi test.config
件名に[リスト名:連番]をつける.
subject_prefix = [test:$SEQNUM]

容量制限の緩和.
maxlength = 40000000

返信先をメーリングリストにする.
reply_to = test@ws.u-shizuoka-ken.ac.jp
sequencerの書き換え.
# su mlist
$ cd /home/majordomo-1.94.5/
$ vi sequencer
#198行目をコメントアウトして,書き換え.
#                        $subject = $foo . "Message for " . $opt_l;
                        $subject = "Subject: " . $foo . "Message for " . $opt_l;

#155行目 while (<STDIN>) { と 156行目 print IN $_; の間に以下を挿入
  if (/^Subject:/) {
    s/R[eE]\:.*[\(\[].*\d+[\)\]]/Re\:/;
    s/R[eE]\:\s+R[eE]\:/Re\:/g;
  }
test@ws.u-shizuoka-ken.ac.jp宛てにメールを出して動作を確認.

参考

Majordomoのホームページ (http://www.greatcircle.com/majordomo/)2002.2現在
How to use majordomo (http://www.y-min.or.jp/~nob/ML/)2002.2現在
Majordomo+Distribute のインストール(http://www.ipc.hiroshima-u.ac.jp/hinet/admin/6.3.html)2002.2現在
Majordomo Install(http://www.islab.is.tsukuba.ac.jp/~koni/Koni/majordomo.html)2002.2現在
東葛パソコン研究会Linux 研究室(http://www.big.or.jp/~junji/)2002.2現在
Sendmailによるセキュアメールサーバ構築(http://www.stackasterisk.jp/tech/systemConstruction/sendmailSec01_01.jsp) 2006.12現在
MailingListサーバ Majordomo(http://www.unix-power.jp/linux/redhat/majordomo.html) 2006.12現在