
	fml 4.0.3 メーリングリスト サーバ/マネージャ

				深町 賢一
[ガイド]

   大まかな流れを掴むために、まず以下の URL を参照して下さい。
	http://www.fml.org/fml/Japanese/basic_setup/

   fml チュートリアルはテーマごとに事例を取り上げたページです。
   細かい設定等はこちらを参照して下さい。fml 内部等も適宜解説しています。
	http://www.fml.org/fml/Japanese/tutorial.html

   fml のホームページ
	http://www.fml.org/fml/

   ソースのダウンロード先
	ftp://ftp.fml.org/pub/fml/
	ftp://ftp.iij.ad.jp/pub/IIJ/dist/fukachan/fml/

   動作テスト、過去数年間の代表的なトラブルの事例とその解決方法

     書籍「fml バイブル」（オライリージャパン刊）が最も詳しく扱っています。
	http://www.fml.org/fml/treking_guide.ja.html

    うまくいかない場合には、以下のチェックリストに沿って設定を確認し、
	http://www.fml.org/fml/CHECK_LIST/

    www.fml.org のサーチエンジンで過去の事例を検索して下さい。

------------------------------------------------------------
1	イントロダクション
1.1	はじめに
1.2	fml を動かすことのできる環境
1.3	インストールについて
1.4	ソースのダウンロード
1.5	ドキュメント
1.6	メーリングリストについて

2	インストール
2.1	makefml (インストーラ及び設定インターフェイス)
2.2	アップグレード・インストールをしようとしている人へ

3	fml 4.0 の機能の概要

4	バージョンアップと互換性について
4.1	バージョンアップについて
4.2	新しい機能を有効にするには？
4.3	互換性について
4.4	変更点について

5	配布について
5.1	配布条件 --- Copyright ---
------------------------------------------------------------


1	イントロダクション

1.1	はじめに

fml はメーリングリスト(以下 ML)を作るためのパッケージです。perl を使っ
て書かれています。fml は、配送とコマンドメールを処理するプログラムを中
核に、多くのプログラムから構成されます。

fml のセットアップやカスタマイズは makefml というプログラムにより、メ
ニューで対話的に行うこともできます。fml 4.0 からは CGI から makefml 
の代表的な機能(登録、削除、メニューによる ML のカスタマイズ)を使う仕組
みもあります。

fml 4.0 の(目に見える)主な新機能は CGI インターフェイス、データベース
アクセス(リレーショナルデータベース、LDAP)などです。
見えない変化としては初期化コードなどです。

fml のデザインの根幹をなす思想は
『趣味やコンピュータ環境は人それぞれであり、それを尊重すること』です。
そのため、様々なカスタマイズをする自由度があります。

デフォルトの ML の場合、運用の仕方は 

	ML サーバのホスト上で、fml の管理者が makefml コマンドを使い
	登録や削除、そして細かなカスタマイズ等を行う

ことが期待されています。別の運用スタイル(自動登録、モデレータ、メール
マガジン型)もいろいろと用意されています。

1.2	fml を動かすことのできる環境

UNIX の場合は、最近の UNIX 系 OS であれば動くでしょう。できるだけイン
ストーラが自動判定してなんとかするようになっています。ちなみに、ターゲッ
トの OS は NetBSD (4.4BSD)です。

WINDOWS 2000/NT4 上でも動きます。注意点については INSTALL_on_NT4 を参
照して下さい。操作方法の大筋は UNIX 版と同様です。詳しくは INSTALL を
参照して下さい。

* 開発環境

   postfix release-20010228 + perl 5.00503 on NetBSD/i386 1.5.1

* テスト環境: fml.org の実運用テスト環境は

   postfix release-20010228 (+IPv6) + perl 5.00503 on NetBSD/sparc 1.5.1

さらに配送系は複数のMTAを使った並列配送実験をしています(通称 MTA みく
じです ^^;)。(最近は一旦２つに減っていますが、そのうち増えるかも:)

   qmail 1.03
   postfix release-20010228

1.3	インストールについて

fml のインストールとメールサーバの設定作業について詳しくは 
INSTALL という名のファイルを読んで下さい。

INSTALL はインストールの手続き全般について述べています。
そこでは UNIX 上で sendmail を使っているケースを前提としています。

各オペレーティングシステムごとの注意は

	INSTALL_on_オペレーティングシステム

という名のファイルに、UNIX 上のメールサーバごとの注意は

	INSTALL_with_メールサーバ

という名のファイルにまとめられています。
UNIX 系の OS 上では手順等に特別な違いはありません。

注意: perl 5 でも 5.00404 以降でないとうまく動かないようです(?)

1.4	ソースのダウンロード

[Sources]

最新版のソースコードは以下の anonymous ftp から入手可能です。

	ftp://ftp.fml.org/pub/fml/

です。このディレクトリ以下には

	release/	正式リリース
	stable/		正式リリースにバグ修正のみをしたシリーズ
	current/	開発版

などのサブディレクトリがあります。それぞれの違いについては例えば
以下の URL を参照して下さい。

	http://www.fml.org/fml/download.html

それぞれのディレクトリにあるファイル名は少しずつ異なります。しかし、基
本的に

	fml-バージョン番号-日付情報を含むスナップショット番号

のようになっています。バージョン番号(4.0、4.0.1 とか 4.0B、4.0C など)
は何かの区切りがついたと思われる時だけ変化します。

お勧めは stable/ にある日付の一番新しいファイルです。

1.5	ドキュメント

ドキュメントは fml のソースを展開すると doc/ の下にあります。プレイン
テキストがそこに展開されます。また、doc/html/ の下にはその HTML 版が用
意されています。

最新版のドキュメントは

	http://www.fml.org/

からたどれます。最新のネタは ML (後述)かこの URL を見てみて下さい。こ
こにはドキュメント群へのサーチエンジンもあります。知りたい情報がある時
は、まず、このサーチエンジンを使ってみて下さい。

1.6	メーリングリストについて

fml に関する議論、バグレポート、質問、要望などあらゆる:)目的に
fml-help ML (言語は日本語)が用意されています。

	fml-help@ffs.fml.org (日本語)

fml-help MLへの自動登録は fml-help-ctl@ffs.fml.org へ subscribe 
の後に自分の名前をローマ字で続けたフレーズをメールの"本文"(注意: メー
ルの本文)に書いて送って下さい。例えば次のようになります。

	To: fml-help-ctl@ffs.fml.org

	subscribe Anne Shirley

このメールに対し、登録意志確認のメールが届くのでそのメールに返事をする
とＭＬに登録されます。

注意: 今まで fml-support ML を同じ運用していました。今でも
      fml-support ML は使われています。fml-help との違いは

	fml-help    WWW でログを公開
  	fml-support メンバーのみメールで過去ログを参照可能

という点だけです。どちらも登録されているメンバーのみが投稿・コマンドの
利用ができます。

自分の設定は WWW で公開したくないなどの理由がない限り、
fml-help へ投稿していただければと思います。

バグレポート等では、使用している OS、メールサーバ、fml などの各バージョ
ンについての情報を付記して下さい。チェックして欲しい項目はたとえば 
doc/CHECK_LIST.jp (日本語)を参照して下さい。

その際に、fml のデフォルトからどのような変更をしたら、どう期待と異なっ
ていたかなどを書いてもらうと解答の参考になります。

また、疑問な点について尋ねる前に fml のドキュメントを検索して下さい。
そこに答がある場合もよくあります。http://www.fml.org/fml/ にあるサーチ
エンジンを使い、それらしいキーワードで検索してみて下さい。

作者個人宛のメールは <fml-bugs@ffs.fml.org> に送って下さい。しかし個人
宛にメールがくるとどこかへまぎれたり、忙しくて時間が取れないことがよく
あります。 ML ならわかる人がすぐに答えてくれる可能性もありますから、で
きるだけ fml-help ML宛へ投げてもらえると助かります。"どうしても"内
密な相談とか、DMで聞きたいことは投げてもらっても構いませんが、返事はも
のすごく遅いかもしれません _o_

fml-bugs はあくまでもＤＭのアドレスです。情報は埋もれ共有されません。
一方 fml-query@ffs.fml.org へ送ると、そのメールは fml-help MLへフォ
ワードされ ML の記事として扱われます。fml-help に参加したくないが、
ML に公開してもよい情報なら是非 fml-query を使って下さい。

○ メーリングリストのログは WWW で見られますか？

	http://www.fml.org/mlarchives/

fml-help 分は見られます。fml-support はメールでのみ取り寄せできます。

2	インストール

設定項目は多岐に渡りますが、基本的なセットアップ(MLをつくる/登録する)
や簡単な設定の変更は makefml という対話設定プログラムで行なえます。
詳細については INSTALL というファイルを見て下さい。

2.1	makefml (インストーラ及び設定インターフェイス)

例えば、インストールは

	(shell prompt)% perl makefml install 

を実行して下さい。また、ML (例えば elena ML)の作成は

	/usr/local/fml/makefml newml ML名
   例:
	/usr/local/fml/makefml newml elena

のようにします。何個作る場合でも以下同様です。

2.2	アップグレード・インストールをしようとしている人へ

3.0 以前からのアップグレード(例: 2.2.1 -> 4.0)の際には必ず UPGRADE を
参照して下さい。自動登録を使っている場合に、重要な注意点があります。

	http://www.fml.org/fml/UPGRADE/

古い config.ph をそのまま使おうと思っている人は(HOOKについてはちょっと
気を付けないといけませんが)そのまま使って下さい。凝った HOOK をしてい
ない人はそのまま使って大丈夫でしょう。4 章参照

3	fml 4.0 の機能の概要

   ---------------------------------------------------------------
   基本的な設計方針は以下のように表現できるでしょう。
      1. 可能な限りユーザおよび  ML 管理者 にとっての自由度をあげる
      2. 「明示的な指定があって初めて機能は増やすべきである」
          および
         「管理者のルーチンワークを少しでも減らす」間の妥協をさがす
   ---------------------------------------------------------------

[ドキュメント]

[インストール]

○ makefml 対話設定プログラム (CUI)

○ CGI を使った対話設定プログラム (4.0 new)

[一般]

◯ データベースアクセス機能 (4.0 new)
	メンバーリストをデータベースで管理する
	記事をデータベースに格納する
   など…

	PostgreSQL
	MySQL
	LDAP (Leightweight Directory Access Protocol)

○ メッセージの多国語化 (3.0 new)

○ メモリ仕様効率の改善 (3.0 new)

[セキュリティ]

○ 投稿メールのフィルタリング (2.2 new function)
   例: 中身のないメールや'unsubscribe'一行だけのメールをはじく

○ フィルタ: Melissaウィルスチェック(2.2.1 new)

○ Message-ID Cache, system account rejection, ... against loop

○ トラフィックモニタ (2.2 new function)
   トラフィックを監視してバースト的に送ってくる奴は reject する
   e.g. 複雑でない mail bomb 対策

○ MD5 checksum によるループ検出 (3.0 new, optional)

○ FML Advisory
   最近の諸問題とそれに関するfmlの設定などについてのアドバイザリィ
	e.g. Melissa virus, happy99

[配送関係]

○ 配送用アドレス、コマンド用アドレスごとのアクセス制御
	アクセス制御(anyone/members_only/moderator)

   [moderator タイプ(I, II, III; II is the default)について]
   デフォルトのモデレータはfmlがスプールして配送していいかどうかを
   one time password と共にモデレータに判断をゆだねる。

○ まとめ送り (ユーザごとに細かく送り方/時間を設定可能)

○ PGP暗号化 ML 
	PGP 2
	PGP 5 (4.0 new)

○ 配送メールのヘッダフィールドのきめこまかい設定

○ スプールする/しない
   標準の ML の記事スプール以外にもアーカイブは設定できます。
○ 自動圧縮(spool -> tar.gz style)
○ 記事の自動 expiration (DISKがない場合)
○ HTML記事作成 (HTML 4.0 FORMAT) 
	new thread format (2.2.1 new)

○ メール配送は直接SMTPを張る(デフォルト)/sendmailを起動する
   応用として配送専用マシンを別にするなどができる。

   SMTPを直接張るため自分のマシンで sendmail が走っている必要はありません。
   そして SMTP を理解してくれるなら sendmail である必要もないです。
   そのためメール配送系のシステムは入れ換えても問題はありません。

○ スタートレック宇宙歴サポート:D
   宇宙歴をつけるmh, mh-e user interface つき:-)

○ mead.pl (2.2 new)
   エラーメールを解析して自動的にユーザを削除する

○ 様々なMLへの制限 (2.2 new)
   fml が受けるメールのサイズの上限
   MLのメンバー数の制限
   メール一通あたりにかけるコマンド数の上限
   メール一通あたりの特定のコマンド数の上限 (例: get コマンド数の上限)

○ $OUTGOING_ADDRESS (2.2.1 new)
   fmlが直接SMTPでMTAに投げるのではなく、特定のアドレスに投げる
   perlの生存時間を短くする HACK
   i486 (メモリ 16M )のような非力なマシンで有効

○ POP3によるML  (optional)
   例えば 一定時間間隔で POP をかけてMLを動かし
   配送はサイトのSMTPサーバにやらせることでMLを実行する裏技。

○ (後ろ向き)In-Reply-To: emulation (2.2.1 new, optional)

○ HTML mail 対策: HTML部分を切落とす (2.2.1 new, optional)
    ContentHandler 

[コマンド関係]

○ リモート管理
   認証方式はアドレス認証/パスワード保存(crypt or MD5)/PGPベースの認証
	PGP 2
	PGP 5 (4.0 new)

○ 豊富なファイル操作 (まとめ送りや mget, get コマンド等で使われる)

	mget と まとめ送りでの User interface は次のようなものが取り
	揃えられています。ユーザーごとに設定できます
	＃ lha 系のものはSJISに変換するオプションもあります

	PLAINTEXT 
		UNIX FROM
		RFC934	
		RFC1153
		MIME/Multipart

	COMPRESSED FORMAT
		gzip UNIX FROM file
		Lha + Ish
		Lha + uuencode
		tar + gzip
		zip + base64  (2.2 new)
		uuencode

○ newsyslog(8); log ファイルのrotation (log -> log.0, log.0 -> log.1 ...) 
   e.g. $DIR/log, $DIR/members, $DIR/actives

○ コマンドサーバの Listserv(Majordomo) 互換インターフェイス

[登録関係]

○ 自動登録のメンバーリストの扱い方を変更 (3.0 new)

○ 自動的にメンバー登録をする機能 (default: confirmation)
   登録への確認/Subject: subscribe/本文に Subscribe/キーワードなし

○ 自動でない場合のsubscribeリクエストに対し confirmation を行う (2.2.1 new)

   $MANUAL_REGISTRATION_TYPE = 'confirmation' or 'forward_to_admin'

○  ML を抜ける時の confirmation (2.2 new); optional

○ CHADDR コマンドの confirmation (2.2.1 new); optional

○ confirmd (2.2 new)
   一定期間ごとに参加し続けるか？をユーザに尋ねる。返事がないと削除する。

○ USE_MEMBER_NAME (2.2 new)
   メンバーのアドレスと名前をセットにして管理する

他

これからMLをはじめる方にはそのまま、MLサーバをカスタマイズして使いたい
とおもっている方には改造のプラットホームとして利用できるかと思います。
＃現状のMLサーバに求められる基本機能のコード(の“一例")は一通り揃って
＃いると思います。最適解ってわけじゃないけど :-)

また、この類いの「外部のサイトとの通信を行うプログラム」はすべてそうで
すが最新版のソースコードを手に入れて使うべきです。また改造も最新版につ
いてした方がよいとおもいます。

4	バージョンアップと互換性について

4.1	バージョンアップについて

ソースを広げてインストールと同様に makefml install (INSTALL というファ
イルを参照)をして下さい。手動でも十分できますが OS の自動判定なども含
めて補正が行なわれるので makefml を使うべきです。

4.2	新しい機能を有効にするには？

新しい機能・オプションは明示的に指定しない限り動きません。基本的なもの
は makefml のメニューで変更ができます。メニューにないパラーメータのチュー
ニングなどは設定ファイルの変更になります。INSTALL を参照して下さい。

4.3	互換性について

互換性などに関しては UPGRADE を見て下さい。

fml では config.ph という設定ファイルが振る舞いを決めます。config.ph に
も version ($CFVersion)という概念があります。この $CFVersion を利用し設
定ファイルの昔の変数名などは変わっていても、基本的に自動補正/変換が加
えられ昔作った config.ph をそのまま使っても大丈夫なようになっています。

config.ph でちょっと複雑な HOOK をしかけている場合は注意が必要です。と
いうのはHOOKで使う関数や変数等が今でもサポートされているとは限らないか
らです。ただ、昔できたことは必ず今の実装でもできるので doc/Japanese/ 
を参照してみて下さい。

4.4	変更点について

CHANGES と RELEASE_NOTES を参照してください。

5	配布について

5.1	配布条件 --- Copyright ---

GNU General Public License です。詳しくは COPYING というファイルを読ん
で下さい。

   Copyright (C) 1993-2001 Ken'ichi Fukamachi

   fml is free software; you can redistribute it and/or modify
   it under the terms of GNU General Public License.
   See the file COPYING for more details.

$FML: README.wix,v 2.46.2.11 2001/11/30 15:48:18 fukachan Exp $
