qmail と majordomo と distribute のインストールと設定 こやま (koyama@ec.tmit.ac.jp) 1997 年 5 月 20 日 この文書は,Slackware 3.2(Linux 2.0.29) への qmail と majordomo と distribute のインストールと設定をまとめたものです。qmail は MTA(Mail Transfer Agent) で,majordomo と distribute が ML(Mailing List) のソフ トです。以下では,133.10.32.20(ecpxb.tmit.ac.jp)を relay.ec.tmit.ac.jp として,practice@relay.ec.tmit.ac.jp という ML を作成するという例を解 説しています。 [編集者(松本庄司(shom@i.h.kyoto-u.ac.jp)より:著者のこやまさ んが LaTeX でメモされていたものを提供して下さり、私が linux- doc-sgml に変換しました] 1. qmail qmail は,sendmail 等に代表される MTA の一種で,sendmail の代替物とし て機能します。500 名規模の ML の処理に sendmail では 3〜10 時間程度か かりますが,qmail はこれを10〜30 分程度で行うことができます。 1.1. インストール 詳しくは INSTALL ファイル参照。 (1) qmail のディレクトリを決めます。qmail は,このディレクトリにすべて のメールを queue します。このディレクトリは自マシンのディスクにする必 要があるようです。NFS 等による遠隔マシンのディスクを使うことはできませ ん。本当の理由はわかりませんが,たぶん,速度が落ちるからでしょう。デ フォルトは /var/qmail です。このディレクトリを変更するには, conf- home.h ファイルを編集してください。以下では,デフォルトの/var/qmail ディレクトリで話を行います。このディレクトリを作成してください。 # mkdir /var/qmail; chmod 755 /var/qmail (2) qmail が使う user と group を登録します。詳しくは INSTALL.ids ファ イル参照。以下の group を /etc/group に登録し, ______________________________________________________________________ qmail:*:2107: nofiles:*:2108: ______________________________________________________________________ 以下の user を /etc/passwd に登録します。 ______________________________________________________________________ alias:*:7790:2108::/var/qmail/alias:/bin/true qmaild:*:7791:2108::/var/qmail:/bin/true qmaill:*:7792:2108::/var/qmail:/bin/true qmailp:*:7793:2108::/var/qmail:/bin/true qmailq:*:7794:2107::/var/qmail:/bin/true qmailr:*:7795:2107::/var/qmail:/bin/true qmails:*:7796:2107::/var/qmail:/bin/true ______________________________________________________________________ qmail は,root 権限での実行をできるだけ避けるために,これらの user と group を使います。これらの user と group 名を変更するには, conf- user.h ファイルを編集してください。 (3) 以下のコマンドを実行します。 # make # make man # make setup # make check (4) qmail の各種設定は,先に設定した qmail のディレクトリ,user,group の変更を除き,/var/qmail/control/ 以下のファイルで行います(詳しくは INSTALL.ctl ファイルを参照してください)。この際に,qmail の再コンパイ ルは必要ありません。通常は,control/me ファイルを除き,デフォルト値の ままでよいので,特に設定する必要はありません。 control/me ファイルに は,自マシンの FQDN を指定します。このほかのファイルは必要に応じて設定 してください。 付属の qmail-makectl スクリプトを実行すれば,control 以下のファイルを 簡単に設定することができます。 # ./qmail-makectl このスクリプトは自マシンの FQDN を DNS 経由で推定し,この値を control/me に書き込み,さらに control/locals 等の関連するファイルに値 を書き込みます。 以下に設定例を示します。 ______________________________________________________________________ -- control/me -- relay.ec.tmit.ac.jp -- control/defaultdomain -- ec.tmit.ac.jp -- control/plusdomain -- tmit.ac.jp -- control/locals -- localhost ecpxb.tmit.ac.jp ecpxb.ec.tmit.ac.jp relay.ec.tmit.ac.jp -- control/rcpthosts -- localhost ecpxb.ec.tmit.ac.jp relay.ec.tmit.ac.jp ---- ______________________________________________________________________ control/me は自マシンの FQDN,control/defaultdomain はホスト名だけ指定 されたときに付加されるドメイン名, control/plusdomain はホスト名と ``+'' が指定されたときに付加されるドメイン名です。 control/locals に登録されたドメインへのメールは自マシンへのメールとし て処理されます。control/rcpthosts には自マシンへのメールとして受け取る メールのドメインを登録します。 また,concurrencylocal と concurrencyremote には,自マシンと遠隔マシン との間で同時に処理するメール数(SMTP 接続数)を設定します。デフォルト値 は concurrencylocal が10,concurrencyremote が20で す。control/concurrencyremote の上限に関してはFAQファイルを参照してく ださい。 (5) qmail は alias 関連の設定を /etc/aliases ではなく, ~alias ディレ クトリと ~user ディレクトリ以下の .qmail-* ファイルで行います(詳しくは INSTALL.alias ファイルを参照してください)。 (6) 基本の alias の設定は ~alias/.qmail-* ファイルで行います。例え ば,root の alias は ~alias/.qmail-root ファイルに設定します。以下のコ マンドを実行すれば,postmaster,mailer-daemon,root の各 alias を設定 することができます。この設定で,これらのアドレスへのメールは ~alias/Mailbox へ保存されます。 ■qmail は,/usr/spool/mail ではなく,~user/Mailbox にメール を保存します。詳しくは INSTALL.mbox ファイルを参照してくださ い。□ # (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root) # chmod 644 ~alias/.qmail* 各利用者独自の alias の設定は ~user/.qmail-* ファイルで行います。qmail では,各利用者が独自に複数の alias を設定することができます。例えば, 利用者 foo は,foo-group というアドレスの alias は ~foo/.qmail-group ファイルで設定することができます。 ■qsmhook を使うことで,alias の指定を /etc/aliases で行った り,/usr/spool/mail にメールを保存したりという sendmail 互換 の動作を qmail に指示することができますが,これは止めたほう がよいらしいです。詳しくは INSTALL.qsmhook ファイルを参照し てください。□ ■一般の利用者が sendmail から qmail へ移行するときのこと は, qmail-upgrade.* ファイルにまとめられています。□ 1.2. 移行前のテスト (1) qmail の動作を確認します。以下のコマンドを実行して,qmail を起動し てください。 # env - PATH="/var/qmail/bin:$PATH" qmail-start splogger qmail & /usr/adm/messages ファイルに保存されたログから qmail の起動を確認して ください。以下に例を示します。``running'' であれば成功, ``cannot start'' であれば失敗です。 Apr 28 02:17:00 ecpxb qmail: 862161420.691666 running ps コマンドでも起動を確認してください。 # ps aux | grep qmail qmails 1635 0.0 1.7 876 268 p0 S 02:17 0:00 qmail-send qmaill 1636 0.0 1.9 844 292 p0 S 02:17 0:00 splogger qmail root 1637 0.0 1.4 840 212 p0 S 02:17 0:00 qmail-lspawn qmailq 1639 0.0 1.5 836 224 p0 S 02:17 0:00 qmail-clean qmailr 1638 0.0 1.3 836 208 p0 S 02:17 0:00 qmail-rspawn root 1659 0.0 2.2 932 328 p1 S 02:23 0:00 grep qmail # 4 つの qmail (qmail-send が qmails で,qmail-lspawn が root で, qmail-rspawn が qmailr で,qmail-clean が qmailq) と,splogger が動い ていれば成功です。 (2) 自マシンから自マシンへのメールのテストを行います (me は正しい利用 者名を使ってください)。 % echo to: me | /var/qmail/bin/qmail-inject この結果,即座に ~foo/Mailbox にメールが届いていることと, /usr/adm/messages のログを確認してください。以下にログの例を示します (53 と 20345 は実行するたびに変わります)。 qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20345 uid 666 qmail: starting delivery 1: msg 53 to local me@relay.ec.tmit.ac.jp qmail: delivery 1: success: did_1+0+0/ qmail: end msg 53 (3) 自マシンでのエラーメールのテストを行います。 % echo to: nonexistent | /var/qmail/bin/qmail-inject 以下にログの例を示します。また,エラーメールが ~/Mailbox に戻ってきて いることを確認してください。 qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20351 uid 666 qmail: starting delivery 2: msg 53 to local nonexistent@relay.ec.tmit.ac.jp qmail: delivery 2: failure: No_such_address.__#5.1.1_/ qmail: bounce msg 53 qp 20357 qmail: end msg 53 qmail: new msg 54 qmail: info msg 54: bytes 743 from <> qp 20357 uid 666 qmail: starting delivery 3: msg 54 to local me@relay.ec.tmit.ac.jp qmail: delivery 3: success: did_1+0+0/ qmail: end msg 54 (4) 自マシンから遠隔マシンへのメールのテストを行います。 % echo to: koyama@ec.tmit.ac.jp | /var/qmail/bin/qmail-inject 以下にログの例を示します。また,メールが遠隔マシンに届いていることを確 認してください。 qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20372 uid 666 qmail: starting delivery 4: msg 53 to remote koyama@ec.tmit.ac.jp qmail: delivery 4: success: 1.2.3.4_accepted_message./... qmail: end msg 53 (5) 自マシンの postmaster へのメールのテストを行います。メールが ~alias/Mailbox に届いていることを確認してください。 % echo to: POSTmaster | /var/qmail/bin/qmail-inject (6) 自マシンの postmaster へのメールのテストを行います。メールが ~alias/Mailbox に届いていることを確認してください。 (7) バウンドメールのテストを行います。メールの終わりは ``.'' ではな く, CTRL-D で指定してください。バウンドメールに関するエラーメールが ~alias/Mailbox に届いていることを確認してください。 % /var/qmail/bin/qmail-inject -f nonexistent To: unknownuser Subject: testing This is a test. This is only a test. (CTRL-D) % (8) 利用者の ~/.qmail-* ファイルによる alias のテストを行います。例と して,~me/.qmail-groups を作成します。 % cat > ~me/.qmail-groups |groups >> MYGROUPS; exit 0 (CTRL-D) ここで,me-groups にメールして,~me/MYGROUPS ファイルに group id が保 存されているかどうかを確認してください。 % /var/qmail/bin/qmail-inject me-groups < /dev/null 1.3. sendmailからqmailへの移行 (1) マシンの起動時に,sendmail ではなく,qmail を起動するように設定し ます。詳しくは INSTALL.boot ファイルを参照してください。この例では,起 動時に実行されるスクリプト(/etc/rc.d/rc.M)で sendmail が起動されている とします。 ______________________________________________________________________ # Start the sendmail daemon: if [ -x /usr/sbin/sendmail ]; then echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -q 15m)..." /usr/sbin/sendmail -bd -q 15m fi ______________________________________________________________________ この部分を以下のものに置換することにします。 ______________________________________________________________________ env - PATH=''/var/qmail/bin:$PATH'' csh -cf 'qmail-start splogger qmail &' ______________________________________________________________________ (2) 実行中の sendmail を止めます。以下に sendmail を止める手順を示しま す。 1. 現在のsendmail daemon を kill -STOP する。 2. ここで,sendmail の子供が存在するときは,「kill -CONT し,すこし 待って,再度 kill -STOP する」という作業を子供がいる間繰り返す。 3. 子供がすべて止まったら,kill -TERM し,kill -CONT してsendmailを止 める。 (3) qmail の sendmail 版 wrapper(sendmail のインターフェイス付き qmail)で,現在の sendmail を置換します。 # mv /usr/lib/sendmail /usr/lib/sendmail.bak # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail (4) /etc/inetd.conf を修正します。以下の行を /etc/inetd.conf に書き込 み(これはすべて 1 行で書くこと), comsat に関する行をコメントアウトし ます。 ______________________________________________________________________ smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd ______________________________________________________________________ (5) マシンを再起動します。あるいは inetd を kill-HUP し,qmail が正し く動作していることを確認してもかまいません。 (6) sendmail で未処理のまま queue に残っているメールの処理を行います (この処理は省略してもかまいません)。qmail の実行中であっても, sendmail.bak -q (あるいは sendmail.bak -q15m) を実行してもかまいませ ん。queue に残っているメールがすべて処理されるまで,これを行ってくださ い(数日かかることもあります)。 # /usr/lib/sendmail.bak -q (7) sendmail と binmail 等の実行許可を取り除きます(この処理は省略して もかまいません)。ここでは,chmod 0 を実行することにします。 # chmod 0 /usr/sbin/sendmail /usr/lib/sendmail.bak /usr/lib/sendmail.mx # chmod 0 /bin/mail ... (8) mail が正しいメイラーを起動することを確認します(意味不明)。SVR4 の 処理は省略してもかまいません)。SVR4 では,mail から mailx へリンクを作 成すればよいでしょう(意味不明)。 1.4. 移行後のテスト (1) SMTP のテストを行います。SMTP 経由で自マシンにメールを出すテストを 行います。自マシンの ~me/Mailbox にメールが届いていることを確認してく ださい。 % telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 relay.ec.tmit.ac.jp ESMTP helo dude 250-relay.ec.tmit.ac.jp 250-PIPELINING 250 8BITMIME mail 250 ok rcpt 250 ok data 354 go ahead Subject: testing This is a test. . 250 ok 812345679 qp 12345 quit 221 relay.ec.tmit.ac.jp Connection closed by foreign host. % (2) 遠隔マシンから自マシンのメールのテストを行います。ほかのマシンから 自マシンのアカウントへメールを出してみてください。 (3) 遠隔マシンからのテストメールのテストを行います。 (4) MUA のテストを行います。mh-e 等を使って,最初は自マシンのアカウン ト,次に遠隔マシンのアカウントにメールを出してください。 (5) 遠隔マシンから自マシンの postmaster へのメールのテストを行います。 遠隔マシンから PoStMaStEr@relay.ec.tmit.ac.jp へメールを出し, ~alias/Mailbox にメールが届いていることを確認してください。 1.5. qmail の管理ツール /var/qmail/bin/qmail-qread queue の内容をリストにして表示します。 1.6. qmailanalog のインストールと設定 (1) qmailanalog のディレクトリを決めます。デフォルトは /usr/local/bin/qmailanalog です。これを変更するには, conf-bin.h を編 集してください。 (2) 以下のコマンドを実行します。 # make # make setup # ln -s /usr/bin/awk /usr/bin/nawk (3) qmail のログがマイクロ秒単位であることを確認します。 849347513.939860 running 849347523.531129 new msg 19326 849347523.532347 info msg 19326: bytes 266 ... (4) qmail のログを qmailanalog/matchup に処理してもらいます。 % awk '{$1=";$2=";$3=";$4=";$5=";print}' < /usr/adm/message \ | /usr/local/bin/qmailanalog/matchup > out (5) matchup の出力を qmailanalog/z* スクリプトで処理します。 % /usr/local/bin/qmailanalog/zddist < out # メールの遅れの統計 % /usr/local/bin/qmailanalog/zfailures < out # 失敗メールのチェック % /usr/local/bin/qmailanalog/zrecipients < out # 受け取り先の統計 % /usr/local/bin/qmailanalog/zrxdelay < out # 受け取り先の統計(遅れでソート) % /usr/local/bin/qmailanalog/zsuccesses < out # 成功時に理由の統計(意味無し) % /usr/local/bin/qmailanalog/zdeferrals < out # deferral時の理由の統計 % /usr/local/bin/qmailanalog/zoverall < out # 基本統計 % /usr/local/bin/qmailanalog/zrhosts < out # 相手のホストの統計 % /usr/local/bin/qmailanalog/zsenders < out # 差し出し元の統計 % /usr/local/bin/qmailanalog/zsuids < out # 差し出し元のuidの統計 1.7. qmail の qlist による簡易 ML の作成 以下のコマンドを実行し, % touch .qmail-ifweb .qmail-ifweb-owner .qmail-ifweb-request ファイルに以下の内容を書き込みます。 ______________________________________________________________________ | qlist2 ifweb relay.ec.tmit.ac.jp ______________________________________________________________________ 2. majordomo と distribute majordomo は CML(現鹿島 ML)等の ML 管理ソフトの一種です。distribute も ML 管理ソフトの一種ですが,最近では majordomo の機能拡張ソフトとして majordomo と一緒に使われることが多いようです。ここでも,majordomo を ML 管理ソフトとして扱い,distribute で機能拡張を行うことにします。 2.1. majordomo のインストール (1) majordomo の user id と group id を決めます。ここでは,user を majordomo(7797) に,group を daemon(2) にすることにします。 /etc/passwd と /etc/group を修正してください。 (2) majordomo をインストールするディレクトリを決めます。ここでは, /home/mail/majordomo にインストールすることにします。 (3) Makefile を必要に応じて修正します。この例で修正した箇所を以下に示 します。 ______________________________________________________________________ W_HOME = /home/mail/majordomo W_USER = 7797 W_GROUP = 2 ______________________________________________________________________ (4) sample.cf を majordomo.cf に cp し,このファイルを必要に応じて修正 します。この例で修正した箇所を以下に示します。 ______________________________________________________________________ $whereami = "relay.ec.tmit.ac.jp"; $digest_work_dir = "/home/mail/majordomo/spool"; ______________________________________________________________________ (5) 以下のコマンドを実行します。 # make wrapper # make install # make install-wrapper # cd /path/to/majordomo; ./wrapper config-test 2.2. distributeのインストール (1) distribute-2.1-pl19.tgz を展開し,patch-20.gz を当てます。 (2) 詳しくは INSTALL.JP を参照してください。distribute のディレクトリ は /home/mail/distribute にしました。 (3) 必要に応じて Mailefile を修正します。この例で修正した箇所を以下に 示します。 ______________________________________________________________________ DEFAULTCONFIG=\ -DDEF_DOMAINNAME=\"relay.ec.tmit.ac.jp\" \ -DDEF_ALIAS_CHAR_OPTION=\"b\" \ -DDEF_SEQ_PATH=\"/home/mail/distribute\" \ -DDEF_RECIPIENT_PATH=\"/home/mail/distribute\" \ -DDEF_MAJORDOMO_RECIPIENT_PATH=\"/home/mail/majordomo/lists\" \ -DDEF_ARCHIVE_PATH=\"/home/mail/distribute/archive\" WHERE= /home/mail/distribute/bin ______________________________________________________________________ (4) longstr.c を修正します。 ______________________________________________________________________ #ifdef linux #include #endif ______________________________________________________________________ (5) 以下のコマンドを実行します。 # mkdir /home/mail/distribute # mkdir /home/mail/distribute/bin # mkdir /home/mail/distribute/archive # make # make install # chown -R majordomo.daemon /home/mail/distribute # chown 4755 /home/mail/distribute/bin/* (6) /etc/syslog.conf を設定し,syslogd を kill -HUP します。 ______________________________________________________________________ local4.info /usr/adm/distribute.log ______________________________________________________________________ 2.3. majordomo と distribute の基本設定 (1) majordomo と distribute のための alias を設定します。qmail ですか ら,alias の設定は ~alias/.qmail-* ファイルで行います。以下に設定例を 示します。 ______________________________________________________________________ -- ~alias/.qmail-majordomo -- |condredirect postmaster /usr/bin/egrep -i (折り返し) '^(From|Sender|Reply-To):.*(majordomo|listproc|listserv|(折り返し) postmaster|postmstr|admin|root|pmdf|mailer|-request)@' |/home/mail/majordomo/wrapper majordomo -- ~alias/.qmail-majordomo-owner -- -- ~alias/.qmail-owner-majordomo -- ---- ______________________________________________________________________ (2) ~majordomo.qmail から ~alias/.qmail-majordomo へのリンクを作成しま す。 2.4. 新しい ML の作成 詳しくは NEWLIST ファイルを参照してください。ここでは,実験 ML practice@relay.ec.tmit.ac.jp と実験 ML のダイジェスト版 practice- digest@relay.ec.tmit.ac.jp を作成する例を示します。 (1) 新しい ML のための alias を設定します。以下に設定例を示します。 ______________________________________________________________________ -- ~alias/.qmail-owner-practice -- &koyama@ec.tmit.ac.jp -- ~alias/.qmail-practice-approval -- &koyama@ec.tmit.ac.jp -- ~alias/.qmail-practice-request -- | /home/mail/majordomo/wrapper majordomo -l practice -- ~alias/.qmail-practice-digest-request -- | /home/mail/majordomo/wrapper majordomo -l practice-digest -- ~alias/.qmail-practice -- | /home/mail/distribute/bin/distribute -j -R -B A -P bulk (折り返し) -M practice -x practice-outgoing -- ~alias/.qmail-practice-outgoing -- | /home/mail/majordomo/wrapper digest -r -C (折り返し) -l practice-digest practice-digest-outgoing | /home/mail/distribute/bin/archive -M practice ---- ______________________________________________________________________ 以下のリンクを作成します。 # ln -s ~alias/.qmail-practice ~alias/.qmail-practice-digest # ln -s /home/mail/majordomo/lists/practice-digest (折り返し) ~alias/.qmail-practice-digest-outgoing # ln -s ~alias/.qmail-owner-practice ~alias/.qmail-owner-practice-arhive # ln -s ~alias/.qmail-owner-practice ~alias/.qmail-owner-practice-digest # ln -s ~alias/.qmail-practice-approval ~alias/.qmail-practice-digest-approval (2) 新しい ML のための設定ファイルとディレクトリを作成します。以下に例 を示します。practice と practice-digest は登録メンバのリストを保存する ファイル,practice.archive と practice-digest.archive は古いメールを保 存するディレクトリ, practice.info と practice-digest.info は ML の紹 介を書くファイルです(適当に書いてください)。 # cd ~majordomo/lists # touch practice practice-digest # mkdir practice-digest.archive # mkdir /home/mail/distribute/archive/practice # ln -s /home/mail/distribute/archive/practice practice.archive # touch practice-digest.info practice-digest.info # mkdir ~majordomo/spool # mkdir ~majordomo/spool/practice-digest # chown -R majordomo.daemon ~majordomo/lists # chown -R majordomo.daemon ~majordomo/spool # chown -R majordomo.daemon /home/mail/distribute/archive/practice (3) majordomo@relay.ec.tmit.ac.jp に lists コマンドを出してください。 % echo 'lists' | mail majordomo@relay.ec.tmit.ac.jp すべて正しく行われていれば,majordomo@relay.ec.tmit.ac.jp から practice と practice-digest という ML が存在するという内容の返事が戻っ てきます。 (4) lists コマンドを実行すると,~majordomo/lists ディレクトリ に,practice.config と practice-digest.config というファイルが作成され ます。このファイルで ML の動作を設定しますので,必要に応じて修正してく ださい。 (5) ダイジェスト版MLのために,crontab の設定をします。 /usr/spool/cron/crontabs/foo に以下の行を書き込みます。foo は, root で無ければ,誰でもかまいません。root にすると, ~alias/.qmail- majordomo の設定によって postmaster へのメールとして処理されてしまいま す。 ______________________________________________________________________ 0 0,10,14,18 * * * /home/mail/majordomo/mkdigest >/dev/null 2>&1 ______________________________________________________________________ /home/mail/majordomo/mkdigest の内容は以下の通りです。 ______________________________________________________________________ (echo To: majordomo@relay.ec.tmit.ac.jp; echo mkdigest practice-digest PASSWORD) | /var/qmail/bin/qmail-inject ______________________________________________________________________ これは 0 時と 10 時と 14 時と 18 時にダイジェスト版を作成するという指 示です。最後に,この crontab を登録します。 # crontab /usr/spool/cron/crontabs/foo -u foo これで終わりです。 2.5. distribute から sequencer への移行 (1) 以下のコマンドを実行します。 # cd ~majordomo # cp Tools/sequencer . # chown majordomo.daemon sequencer # cd lists # echo "1" > practice.seq # touch practice.aliases # chown majordomo.daemon practice.seq practice.aliases # cd ~alias # ln -s /home/mail/majordomo/lists/practice .qmail-practice-outgoing-list (2) ~alias/.qmail-* を修正します。 ______________________________________________________________________ -- ~alias/.qmail-practice -- | /home/mail/majordomo/wrapper sequencer -l practice -N (折り返し) -h relay.ec.tmit.ac.jp practice-outgoing -- ~alias/.qmail-practice-outgoing -- &practice-outgoing-list | /home/mail/majordomo/wrapper digest -r -C (折り返し) -l practice-digest practice-digest-outgoing ---- ______________________________________________________________________ (3) ~majordomo/lists/practice.config を修正します。修正箇所は以下の通 りです。 ______________________________________________________________________ # listsコマンドで,このMLを非表示にする。 noadvertise << END /.*/ END # メールヘッダーのreceived行を削除する。 purge_received = yes # Reply-To:行を設定する。 reply_to = practice # 投稿者を制限する(投稿を許可するファイル名を指定)。 restrict_post = practice:practice-digest:practice.aliases # Subject行の変更を指示する。 subject_prefix = [Practice $SEQNUM] ______________________________________________________________________ (4) 必要であれば,~majordomo/lists/practice.aliases に,投稿を許可する メールアドレスを登録します。 (5) ~majordomo/majordomo.cf を修正します。以下に修正箇所を示します。こ れは Majordomo の index コマンドの変更です。 ______________________________________________________________________ $index_command = "sed -e 's/.* [[]/[/g' INDEX | /bin/nkf -m"; ______________________________________________________________________ (6) ~majordomo/sequencer を修正します。以下に diff を示します。これ は,Subject 行で [Practice *] が重複するのを修正するための変更です。 ______________________________________________________________________ *** Tools/sequencer Tue Mar 18 11:54:02 1997 --- sequencer Wed Mar 19 23:41:09 1997 *************** *** 153,158 **** --- 153,168 ---- &abort("sequencer: Can't open /tmp/sequencer.$$.in: $!"); while () { + # modified by nob@makioka.y-min.or.jp 961130 + # to delete [****] or (****) from Subject: + # update by hiro@dp.fcs.ts.fujitsu.co.jp 970202 + # to delete Re: [****] or Re: (****) + # RE: [****] or RE: (****) from Subject: + if (/^Subject:/) { + s/R[eE].*\: [\(\[].*[\]\)]/Re\:/g; + s/R[eE].*\:.*R[eE].*\:/Re\:/g; + } + # print IN $_; } *************** *** 196,202 **** } } $subject = $foo . "Message for " . $opt_l; ! print OUT $subject, "\n"; } print OUT "Sender: $sender\n"; --- 206,214 ---- } } $subject = $foo . "Message for " . $opt_l; ! # modified by hiro@dp.fcs.ts.fujitsu.co.jp 970202 ! # no Subject Mail addon Subject: ! print OUT "Subject: $subject\n"; } print OUT "Sender: $sender\n"; ______________________________________________________________________