FMLインストール(2001.9.17)

メーリングリストを構築するにはezmlm、majourdomoなども
あるがマニュアルが日本語で設定がメニューから容易に行えるということで
fmlを使用することとする。

 それとMTAにはqmailを使用することにします。sendmailだと簡単ですが
qmailでfmlを構築したことがないという方も多いかと(最近はそんなことないか?)思ったので
sendmailは使わないことにします。


※前提条件としてDNSとMTAは構築済みということで話を進めます。
今回の場合はjinjin.comドメインをbindで構築し、そのドメインにqmailで
メールサーバを構築した状態とします。
まだその前提条件ができていないのであればこちらを参照ください。
DNSサーバの構築
MTA(qmail)サーバの構築

【準備】
http://www.sapporo.iij.ad.jp/staff/fukachan/fml/index.html
から最新版のfmlをダウンロードしてくる。
現在(2001/08/05)では4.02が安定版の最新となっている。
ダウンロードしたアーカイブは/work/fmlにおく。


●ユーザの作成
[root@home5 fml]# groupadd fml
[root@home5 fml]# useradd -c "fml user" -g fml -d /home/fml -s /bin/bash fml
[root@home5 fml]# grep fml /etc/passwd /etc/group
/etc/passwd:fml:x:509:504:fml user:/home/fml:/bin/bash
/etc/group:fml:x:504:
※Solarisの場合はホームディレクトリは/export/homeで作ります。
[root@home5 fml]# ls -l /home
drwx------ 2 fml fml 4096 8月 5 22:08 fml

【インストール】
[root@home5 fml]# tar zxf fml-4.0.2.tar.gz
[root@home5 fml]# cd fml-4.0.2
[root@home5 fml-4.0.2]# ls
INSTALL.en README.en cf doc libexec module src
INSTALL.jp README.jp contrib drafts makefml ntinstall.cmd sys
Makefile bin databases etc messages sbin www
[root@home5 fml-4.0.2]#env RECOMMEND=yes perl makefml install
ここからいくつか質問されます。[ ]内はデフォルト値。そのままでいい場合はリターン。
Personal, Group, Fmlserv (personal/group/fmlserv) [personal]リターン
DOMAIN NAME [home5] jinjin.com
FQDN [home5] home5.jinjin.com
EXEC FILES DIRECTORY [/usr/local/fml]リターン
TOP LEVEL ML DIRECTORY [/var/spool/ml] /usr/local/fml/ml
Language (Japanese or English) [English] Japanese
TimeZone (TZ: e.g. +0900, -0300) [+0900]リターン
--- summary ---
DOMAIN: jinjin.com
FQDN: home5.jinjin.com
EXEC_DIR: /usr/local/fml
ML_DIR: /usr/local/fml/ml
Language: Japanese
TimeZone: +0900

The current configuration is saved in /usr/local/fml/.fml/system
mkdir /usr/local/fml/ml

---Install the Fml system to /usr/local/fml. (y/n) [n]y
・・・・・・・・
-- Enjoy Internetworking!
インストールは以上で完了です。わりと簡単にインストールできるように
IIJの深町さんは開発されているのが嬉ですね。


・メンバー以外からの投稿も受け付ける
・コマンドはメンバー以外拒否
・その他はデフォルト

【MLの作成&設定】
[root@home5 fml]# chown -R fml /usr/local/fml
[root@home5 fml]# su - fml   #作業はfmlユーザ行います。rootでは行いません。
[fml@home5 fml]$ cd /usr/local/fml
[fml@home5 fml]$ ./makefml newml info  #info@jinjin.comというMLの作成
[fml@home5 fml]$ ./makefml config info  #info@jinjin.comのMLの設定
ここでメニュー画面が立ち上がりいろいろ設定できます。
ここで投稿はmenber以外からの投稿も受け付けるようにします。
実際のログはここでは割愛しますがメニュー形式になっているので直感で分かります。


【メンバー登録】
・メンバーのみ
[fml@home5 fml]$ ./makefml add2members info nitta@jinjin.com
DO "add2members nitta@jinjin.com" for info mailing list.
* added to members (authentication list) only!
done.
※通常のactivesにもメンバーにも登録する(配信も投稿もできるメンバーとして登録する)場合は
$makefml add ML addr
※activesだけに登録する(配信メンバーとして登録)する場合は
$makefml add2actives ML addr

【qmailの設定】
実際にqmailでfmlを動かすにはいくつかのソリューションがあると思いますが
一般的と思われる方法で下記の要領で行います。
他の方法はこちらを参考にしてみてください。

[fml@home5 users]$ su
[root@home5 users]# cp /usr/local/fml/ml/etc/qmail/users/assign /var/qmail/users/
※ちゃんとqmailを使うことを考慮して/usr/local/fml/ml/etc/qmailの中に雛型ファイルが作成されています。
/var/qmail/users/assign
+:fml:509:504:/usr/local/fml/ml/etc/qmail/alias:-::

・/usr/local/fml/ml/etc/qmail/alias以下のファイルはfml:fmlが
配信する際に参照するのでアクセス権がちゃんと設定されていない場合は与えておく必要がある。

[root@home5 qmail]# chown -R fml:fml /usr/local/fml/ml/etc/qmail/alias

最後はちゃんと/var/qmail/users/assignを有効にするコマンドを実行しておく。

[root@home5 qmail]# /var/qmail/bin/qmail-newu #sendmailでのnewaliasesに似たコマンド

これで実際に作成したMLにメールを送信してみる。
xemacsでも立ち上げてwanerlustからメールを送ってみましょう。
その際にちゃんとメールの配送処理が行われているかどうか/var/log/maillog(/var/log/syslog)を
見てください。
Sep 17 23:10:34 home5 qmail: 1000735834.381957 new msg 98046
Sep 17 23:10:34 home5 qmail: 1000735834.382050 info msg 98046: bytes 777 from <yuzo@jinjin.org> qp 3487 uid 501
Sep 17 23:10:34 home5 qmail: 1000735834.390107 starting delivery 31: msg 98046 to local info@jinjin.com
Sep 17 23:10:34 home5 qmail: 1000735834.390214 status: local 1/10 remote 0/20
Sep 17 23:10:34 home5 qmail: 1000735834.909078 new msg 98047
Sep 17 23:10:34 home5 qmail: 1000735834.909228 info msg 98047: bytes 1612 from <info-admin@jinjin.com> qp 3492 uid 501
Sep 17 23:10:34 home5 qmail: 1000735834.913582 starting delivery 32: msg 98047 to local nitta@home5.jinjin.com
Sep 17 23:10:34 home5 qmail: 1000735834.913717 status: local 2/10 remote 0/20
Sep 17 23:10:34 home5 qmail: 1000735834.918807 delivery 31: success: did_0+0+1/
Sep 17 23:10:34 home5 qmail: 1000735834.918912 status: local 1/10 remote 0/20
Sep 17 23:10:34 home5 qmail: 1000735834.918932 end msg 98046
Sep 17 23:10:34 home5 qmail: 1000735834.922970 delivery 32: success: did_1+0+0/
Sep 17 23:10:34 home5 qmail: 1000735834.923066 status: local 0/10 remote 0/20
Sep 17 23:10:34 home5 qmail: 1000735834.923087 end msg 98047
この用にうまく配送がされていればsuccessの文字がたくさん出てくることでしょう。
たくさんの配送先に送られているので。

qmailでの設定もそんなに難しくないですね!

次はfmlをwebからcgi経由で操作することもできるのでその辺をやってみます。
またまとまったアーカイブをwebから閲覧できると便利ですし、その辺もやってみたいと思います。

【その他】
FMLで以下のようにヘッダーやサブジェクトを書き換える
# vi $FMLSPOOLDIR/ml/ML名/config.ph
●FMLでsubjectの書き換えを行う
※「[MGC:00xx]Re:[MGC:00xy]テスト」となってしまうところを
 「[MGC:00xx]Re:テスト」ときれい成型する。
 
###remove MGC:0000 from subeject#
$HEADER_ADD_HOOK .= q{
  my($subject) ;
  $subject = $Envelope{'h:subject:'} ;
  if ( $subject =~ /\[ML-NAME:\d+\]/ )
  {
    $Envelope{'h:Subject:'} = $subject ;
  }
};
の記述をconfig.phの中に記述する。

●FMLでヘッダーを削除する

・Replay-Toヘッダーを消す
 Replay-Toヘッダーに入るのでそれを消す場合
※返信をした時に宛先がMLになってしまうのを
 差出人あてになるようにする必要がある場合。


・Receivedヘッダーを消す

FMLを経由する時にReceivedヘッダーを消したい場合は
&DELETE_FIELD('Received');を入れておく。

####remove reply-to####
$START_HOOK = q{
        &DELETE_FIELD('Reply-To');
        &DELETE_FIELD('Received');

};

の記述をconfig.phの中に記述する。

もしくはReplay-ToをMLアドレスと発信者に設定する場合は
&DEFINE_FIELD_FORCED("reply-to", "$From_address, $MAIL_LIST");
とすればよい。