(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
$ sumajordomoを動かすためのuserをつくる.所属groupはmail.user名は何でも可.ここではmlistとする.
パスワード(P):
# /usr/sbin/useradd -g mail mlistユーザーmlistのパスワードを設定.
# passwd mlistユーザーmlistに切り替える.以下では#はrootでの操作,$はmlistでの操作.
# su mlistホームディレクトリの属性を変更.
$ cdホームディレクトリにlistsディレクトリを作る.
$ cd ..
$ chmod 755 mlist
$ cd
$ mkdir lists
$ ftp greatcircle.commajordomo-1.94.5.tar.Zを展開.
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
$ tar zxvf majordomo-1.94.5.tar.Z展開したディレクトリへ移動.
$ cd majordomo-1.94.5
$ exitperlのpathを確認.
# /usr/sbin/vipw
mlist:x:502:12::/home/ml:/bin/bash
# su mlist
$ whereis perlMakefileの修正
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz
$ 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
$ cp sample.cf majordomo.cfmajordomo.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 wrapperrootで
$ exiterrorが出た場合は
# make install
# make cleanrootで
してからMakefileを修正して,もう一度
# make install.
# make install-wrappermlistに戻る.
# su mlist/home/majordomo-1.94.5に移動.
$ cd /home/majordomo-1.94.5sequencerをコピー.
$ cp Tools/sequencer .
$ ./wrapper config-testこのように表示されればOK.
rootで設定ツールsendmail-cfをインストール.
$ exitsendmail.mcを変更.
# yum install sendmail-cf
local-host-namesファイルにドメインを追加.# cd /etc/mail # vi sendmail.mcDAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl「,Addr=127.0.0.1」をトル
# vi local-host-names
ws.u-shizuoka-ken.ac.jpsendmail.cfを作成.
# mv sendmail.cf sendmail.cf.orgsendmailを再起動.
# m4 /etc/mail/sendmail.mc > sendmail.cf
# /etc/rc.d/init.d/sendmail restart
# ln -s /home/majordomo-1.94.5/wrapper /etc/smrsh/wrapperaliasesファイルの末尾にmajordomoを追加.
# vi /etc/aliases
majordomo: "|wrapper majordomo"aliasesの変更を有効にする.
majordomo-owner: mlist
owner-majordomo: mlist
# newaliases
このようなメールが返ってくればOK.
aliasesファイルを編集.
# vi /etc/aliases
test: "|wrapper resend -l test test-list"aliasesの変更を有効にする.
test-list: :include:/home/mlist/lists/test
owner-test: mlist
test-owner: mlist
test-request: mlist
# newaliasesrootをlistsへスイッチ.
# su mlistメーリングリストと同じ名前のファイルtestをlistsのなかにつくり,メーリングリストのメンバーのメールアドレスを改行で区切って書き並べる.パーミッションは以下のようであればよい.普通にviでつくれば(ftpで転送すれば)このようになる.
$ cd
$ cd lists
$ ls -l testtest@ws.u-shizuoka-ken.ac.jp宛てにメールを出して動作を確認.
-rw-r--r-- 1 mlist mail 0 Sep 30 10:40 test
# vi /etc/aliases
#test: "|wrapper resend -l test test-list"aliasesの変更を有効にする.
test: "|wrapper sequencer -l test -n -h ws.u-shizuoka-ken.ac.jp test-list"
# newaliaseslistsディレクトリにできたtest.configを編集.
# su mlist
$ vi test.config
件名に[リスト名:連番]をつける.sequencerの書き換え.
subject_prefix = [test:$SEQNUM]
容量制限の緩和.
maxlength = 40000000
返信先をメーリングリストにする.
reply_to = test@ws.u-shizuoka-ken.ac.jp
# su mlist
$ cd /home/majordomo-1.94.5/
$ vi sequencer
test@ws.u-shizuoka-ken.ac.jp宛てにメールを出して動作を確認.#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; }