		STATUS: fml-devel で現在できること/できないこと
		Last Modified: $Date$ (GMT)

	* このドキュメントは"fml bible" の目次に沿って何ができて何がま
	  だできないかをリストアップしたものです。

○ 動作実績
	perl 5.6.1   on NetBSD 1.5.x (1.5 stable)		*
	perl 5.6.1   on NetBSD 1.6				*
	perl 5.00503 on FreeBSD 4.3 STABLE
	perl ?       on FreeBSD 4.6 RELEASE
	perl 5.00503 on FreeBSD 4.7 RELEASE-p3
	perl 5.00503 on FreeBSD 4.6.2 RELEASE			*
	perl 5.6.1   on Redhat Linux 7.2 (postfix)		*
	perl 5.00503 on Redhat Linux 6.2 (sendmail8.11.6)	*
			smrsh はリンク張る必要はあります。

	postfix       + perl 5.6.1 on Solaris 7			*
	postfix 2.0.3 + perl 5.6.1 on Solaris 9			*

		[注意]
		  * 新 installer がうまく動いている OS 
		 () テスト中

3章
	[TODO] ＭＬサーバの理論をかく


II部　fmlのセットアップ〜MLの作成

4章　Unix上でのfmlのインストール

	ユーザ root になり、configure そして make です。
	つまり典型的なインストール手順を行なって下さい。
		# ./configure
		# make install

	fml プロセスのユーザや使用するディレクトリは
	configure のオプションで変更可能です。

	* メールサーバの設定は 4.0 の場合と同様です。

	注意: ユーザ fml を作るだけでなく、きちんとユーザ fml さんの
	      ホームディレクトリも作って下さい。

	[TODO] sendmail + smtpfeed
	[TODO] MacOS X Server


5章　Unix上でMLを作る

	"makefml newml elena" を使って下さい。
	つまり fml 4 と使い方は一緒です。
	ただし fml-devel では newml 時に設定用 CGI や、HTML 化された記事
	をおくディレクトリ ~fml/public_html/ .. を用意する点が異なります。

	[TODO] sendmail + smtpfeed
	[TODO] MacOS X Server

	* postfix と qmail、および sendmail procmail の見本を作っています。

	* バーチャルドメインの扱い

		makefml newml elena@nuinui.net

	のようにドメインつきの名前を指定して下さい。

	注意:	nuinui.net 用のディレクトリの指定が必要です。
		main.cf の virtual_maps で、ファイルを指定して下さい。

			virtual_maps = /etc/fml/virtual

		このファイルの書式は『ドメイン ディレクトリ』です。


6章　Windows 2000/NT4上でのfmlのインストール

	[TODO]	Microsoft ものは全然手をつけていません。
	[TODO]	Microsoft ものは IMail から手をつけるのがいいんじゃないかな

	[TODO]	pop based ML
	[TODO]	imap based ML
	[TODO]	sendmail


7章　アップグレード

	もう一度インストールをし、/etc/fml/main.cf を編集するだけです。
	main.cf の編集をするだけでアップグレードもダウングレードも
	思いのままです。

	★ レシピ のアップグレードの節を見てね

	[TODO] メールサーバの停止？
	[TODO] elena ＭＬのアップグレード？
		ＭＬ固有のアップグレード tips なんてあるかな


8章　Unix上でのCGIのセットアップ

	デフォルトで CGI スクリプトが用意されます。

	[TODO] .htaccess の設定支援ツールがまだありません。
		エディタでファイルを消すなり、編集するなりして下さい。

	CGI からのエラーは __ERROR_.(キーワード)__ で croak() してる

	[TODO] 各ＭＬごとの CGI

	[TODO] config 

	[TODO] $maintainer のリストを CGI から設定したい


9章　fmlの動作確認

	これは fml 4.0 とほぼ同様の感じ。


III部　fmlのカスタマイズ
10章　MLのメンバーができること

	$commands_for_user および
	$commands_for_stranger という変数で定義されています。

	一般ユーザ向けのコマンド
		help get mget get mget send subscribe add unsubscribe
		bye remove resign signoff chaddr confirm guide info
		objective summary

	誰でも使えるコマンド
		guide info add subscribe chaddr confirm

	＊これらは FML::Command::User:: クラスで定義されています。

11章　fml管理者ができること

	makefml で操作可能な項目は FML::Command::Admin:: クラスの
	コマンドすべてです。

		ＭＬの作成			OK
		ＭＬの削除			OK
		ＭＬのメンバーの登録と削除	OK
		登録しているアドレスの変更	OK
		off/on				OK
	簡単なまとめおくりはできます。

		use_digest_program = yes / no

		により使う/使わないが指定できます(yes by default)。

	[TODO]	まとめおくり (fml 4 のような複雑なバージョン)

	リモート管理は現在パスワード認証だけできます。			
			パスワード変更は？
	[TODO]	ＭＬのカスタマイズはファイルの編集あるのみ

	注意: 当然リモートコマンドよりいろいろなことができます。


12章　fmlの設定ファイルを変更する

	[TODO] 設定ファイルのフォーマットの説明
	[TODO] 設定ファイルの変更方法

		各ＭＬのホームディレクトリにある config.cf を編集して
		ください。

	[TODO] メニューでの操作
		設定支援ツールはまだありません。

	[TODO] すべてのＭＬに同じ設定を強制する

	/etc/fml/ (とか /usr/local/etc/fml/ とか) 以下に
	デフォルトの .cf がおかれますし、サイト依存、ドメイン依存
	の .cf を作ることでサイト、ドメインごとの全ＭＬの
	デフォルトを変更することもできます。

	[TODO] etc/src/config.cf.ja/ の説明文ってこれでよい？


13章　MLのスタイルのカスタマイズ (ケーススタディ)

	[TODO] デフォルトのポリシーの説明 (D)C

	投稿の制御: $post_restrictions で制御
		
	コマンドメールの制御: $command_restrictions で制御

	コマンドメールの禁止: $command_restrictions で reject とだけ指定

	[TODO] 自動とか手動登録とかをどこで指定するの？

		$subscribe_command_mode	=	auto / manual
		$chaddr_command_mode	=	auto / manual
		$unsubscribe_command_mode =	auto / manual

	[TODO] 手動登録？

	[TODO] 自動登録
		今はデフォルトで自動登録ですわ :-)
		まだ confirmation タイプしかありません。

	誰でも投稿可能:	$post_restrictions で permit_anyone

	メールマガジン型:
		$member_maps から $primary_member_map をはずす
		$member_maps に投稿可能なメンバーのリストを追加
		IP アドレスで制限しなさいね

	[TODO] モデレータ 

	自動ファイル返送
		[ TODO ] multipart 以外はなしだよな？ なし

	[TODO] 複数の管理者による運用

	登録と削除をまとめておこなう

	[TODO] listserv 風のコマンドアドレス

	[TODO] qmail-ext によるコマンド

	階層化されたＭＬ: $member_maps $recipient_maps をよろしく書く

	procmail:	4.0 と同様だ

	[削除] ＭＬ本体でコマンドメールも受けられる機能


14章　ヘッダの書き換え

	FML::Header とフックを使えばできます。
	多くのヘッダ操作は FML::Header クラスの提供するアクセスメソッ
	ドになっています。

	[TODO] RFC 3282 (Content Language Headers) を考慮する


15章　fmlの返すメッセージをカスタマイズする

	/usr/local/share/fml/$fml_version/message/$charset/
	にあります。

	[TODO] site local のディレクトリを決める
		/etc/fml/ 以下?
		site_local/ ?
		$domain/ ?

	Q: ML LOCAL なメッセージの変更は？

	例えば、文字コードが euc-jp のメッセージ・テンプレートは

		$ml_home_dir/local/share/message/euc-jp/

	に置くとそちらが優先される


16章　記事のフィルタリング

	実装済み (FML::Filter)
		検出できるルール: ヘッダ、本文、特殊なウィルス
		content filter

	4.0 の ContertFilter 相当機能は mime_component_filter
		ファイル名は /etc/fml/mime_component_filter
		デフォルト値は  /etc/fml/mime_component_filter

	[TODO] 統計をとりたい(どのルールにどのくらい引っかかったか？)
		
	[TODO] 統計を見せるコマンド（必要？）

	[TODO] 統計のためのデータベース

	[TODO]	フィルタの拡張機能？

	Q: content-type が正しいかどうかを調べる
		image/gif なら本当に gif ?

	A: ん〜全部は無理だなぁ。File::なんとかで、
	   ファイルのタイプを識別するモジュールとかあれば OK なのかも
	   しれず(?)

	Q: まだ、text/plain 部分は言語依存パートになってない。

	だいたい言語依存とかいうなら virus checker を切り離せよ ＞ お
	れなど、てんこもりなので、text_plain_filter ってちょっと整理が
	大変だなと。

	Q: 古いメールは SPAM に違いない


17章　トラフィックを制限する（メール爆弾対策）

	[TODO] 未実装

	[TODO] トラフィック統計を取るために、あらかじめいろんなデータを
		DB に取りまくるべき？ 
		thread db とデータを共有する？ 


18章　リモート管理（メールでfmlを操作する）

	管理者がコマンドメールで使える特権コマンドつまり admin コマン
	ドは $commands_for_privileged_user という変数で定義
	されているものが利用可能です。

	利用可能なコマンドは FML::Command::Admin:: クラスの部分集合です

	[TODO] "approve パスワード コマンド"型構文サポート

	[TODO] 非対称鍵暗号認証

	[TODO] etc/passwd-admin の操作ツール、コマンド

19章　MLの暗号化

	[TODO] 未実装


20章　MLの記事をWWWで公開する

	デフォルトで作ることになっています。デフォルトでは

		~fml/public_html/fml/mlarchive/$domain/$ml_name/

	というディレクトリに作ります。このまま作るなり、適宜
	alias を切るなりして使うとよいでしょう。

	[TODO] permission はこれでいい？


21章　まとめ送り

	簡易版のまとめおくりはサポートされている。

	[TODO] fml 4 のような粒度の細かなまとめ送り
	[TODO] それを踏まえた


IV部　トラブルシューティング

	[TODO] トラブルシューティング事例を集める

V部　その他のトピック
26章　日々の運用について

	スプールは真っ平ら or 一階層構造のどちらでもとれます。
	一階層構造がお薦めです。

	受けとったメールを保存する。
		var/mail/incoming/ 以下に保存します。

	自分が出したメールは
		var/mail/outgoing/ 以下に保存します。
	[削除]	var/log/_smtplog.数字ではなくなりました。


	[TODO] ログファイルの expire
	[TODO] スプールの圧縮
	[TODO] スプールを tar などにまとめる (mode_archive)
	[TODO] スプールの expire (mode_expire)
	[TODO] 設定ファイルなどの RCS 管理
	[TODO] 設定ファイルなどの CVS 管理
	[TODO] ログファイルなどへの newsyslog
		File::Rotate に実装されているが	組み込まれてはいない。
	[TODO] log suffix extension


27章　エラーメールを自動解析する

	Mail::Bounce モジュールを使う。
	自動削除も可能。

	[TODO] アルゴリズムを選択可能にする
	[TODO] カスタマイズを可能にする
	[TODO] カスタマイズされたモジュールの置き場所

28章　メールサーバの変更/引越し

	手間は 4.0 とほとんど同じかな

29章　バーチャルドメイン

	デフォルトで考えてある。


VI部　fmlの内部構造と機能拡張

30章　変数と関数
31章　リストファイルのフォーマット
32章　fml.plプロセスの動作
33章　デバッグをする

	モジュール単位で $debug という変数がある場合がある。
	デバッグの時はモジュールを直接書き換えるしかないけど

	デバッグ用のディレクトリを作って main.cf で制御してもよいね

34章　コマンドメールのカスタマイズ

	Q: カスタマイズされたモジュールを置く場所は？

	$ml_home_dir の下に local/lib ってのがある、その下におく

	例: $ml_home_dir/local/lib/FML/Command/User/help.pm

		を作ると、そのＭＬ独自のヘルプコマンドとなる

35章　ケーススタディ：HOOKによる拡張

	[レシピ] subject: によってフォワード先を変えられる？


VII部　Advanced Study
36章　fmlからデータベースへのアクセス

	はじめから前提です。
		IO::Adapter に組み込まれている

	[削除] replace メソッドは削除した

37章　配送の高速化について (+ 配送関係の TIPS )

	[レシピ] フォワードする関数
		multipart ということではなく、いきなり曲げる
		宛先を変えるということか？

	[TODO] 配送ルーチンが自動分割を頑張るオプション
		reply_message() の先？
		それって、メール爆撃するあれか？ ;) 
		text/plain を適当に切ると読めないような気がするが…

	[TODO] Mail::Delivery の LMTP モード

	[TODO] outgoing address hack
		SPAM 対策についてドキュメントを書く

	[TODO] execute $program on the disk NOT IPC.


38章　試論：現代的サーバデザインについて
VIII部　付録
付録D　virus_check.phの例


        ********* ********* ********* ********* ********* ********* 
	いまひとつ分類できないかな？

* スケジューラ
	alarm() によるスケジューラ
	queue manager for LMTP ? 


        ********* ********* ********* ********* ********* ********* 
	fml-devel 固有の TODO




---
$FML: STATUS.txt,v 1.28 2003/05/14 12:07:54 fukachan Exp $
