		CHANGES
		$Date$


2001/09/23

   Mail::Message
	implement get_encoding_mechanism() in Mail::Message. 

	implement get_offset(): return offset information in the data.
	return value is	ARRAY.

	return encoding type for specified Mail::Message not whole mail. 
	The return value is one of base64, quoted-printable or undef. 

	Modified Files:
		fml/lib/Mail/Message.pm
		fml/doc/ja/tutorial/module/Mail::Message.sgml
		regress/message/dump.pl

   チュートリアル
	module  に関する新パートの創設
	module/ ディレクトリを創設
		Mail::Message
		IO::Adapter
	のプロトタイプを用意する。
	このディレクトリでは各モジュールの詳細な使い方について
	記述するもの。

   FML::Filter
	fml 4.0.x 相当の機能をきちんと実装する。
	＃ ただし、ウィルスチェックは除く
	XXX これで、おおむね、いつでも入れ換え可能か？ 

	Utils を削除し、関数は適当なモジュールへ移動
	move clean_up_buffer() and compare_euc_string() to
	FML::Filter::BodyCheck and FML::Language::Japanese::Utils
	respectively to remove FML::Filter::Utils.

	MS GUID を判別するルーチンも実装した

2001/09/22

   FML/Config.pm
	if ($ENV{'debug'}) { ... debug ...;}

   TinyScheduler.pm
   FML/Command/Admin/edit.pm
	modified to use File::Spec

2001/09/18

   errormail collection
	add netscape messaging server 3.54 sample
	thanks PR for Toshimi Aoki <toshi@kinotrope.co.jp>

2001/09/17

   IO::Adapter

     * IO::Adapter::{DBI,MySQL,RDBMS}.pm
	rename: $self->{ _driver } -> $self->{ _model_specific_driver } 
	dynamically load DBD:mysql

	move replace(), getline() and get_nextvalue() to DBI.pm 
	since these functions are MI (Map Independent).

	implement setpos(), getpos() and eof() in MySQL.pm 
	since these functions is dependent on map type (MD).

	RDBMS.pm is not used now, so removed.

     * IO/Adapter.pm
	change replace()
	o fix typo: s/regexp/replace/
	o fix case insensitive search when $show_all is on
	o call md_find (md == map dependent, function) if defined
	o enabled to call md_XXX()
		define AUTOLOAD() to hook up md_XXX() functions
		XXX For example, md_XXX() should be implemented at
		XXX IO::Adapter::SQL::toymodel.pm

     * IO/Adapter/SQL/toymodel.pm
	rename: fetch_and_cache_address_list -> fetch_all  
	implement md_find()


2001/09/13

   FML::Process::QueueManager
	send() can take queue id as the argument

   FML::Process::Kernel
	more friendly error message

	implement queue_flush($queue): This flush C<$queue>, that is,
	send mail specified by C<$queue>.  It uses
	FML::Process::QueueManager module.

   FML::Config.pm
	define FIRSTKEY and NEXTKEY for complete hash emulation

   FML::Command::Admin	ユーザ用コマンド群
		commit prototype
		makefml uses this class

2001/08/26

   FML::Credential
	implement has_address_in_map() method and is_member() uses this. 
	has_address_in_map() searches the address in the specified map.

   IO::Adapter クラス
	touch() メソッドを追加
	XXX file タイプ以外では無意味。ダミー

   FML::Command:: クラスの再構成

	FML::Command.pm		FML::Command クラス以下への入口
	FML::Command::ACL	ACL
	FML::Command::Utils	よもやまの定義
	FML::Command::User	ユーザ用コマンド群
	FML::Command::Admin	ユーザ用コマンド群

		newml edit などは Admin のみ

2001/08/24

  regress/
	add&enable FML::Config {+,-}= overload test tools

2001/08/23

   FML::Config の拡張
	postfix style のさらなる拡張

	変数名 += 値
	変数名 -= 値
	で、特定の値の足し引きができます。

	例:
		x  = a b c d
		x -= b
		は
		x = a c d

		x  = a b c d
		x += e
		は
		x = a b c d e
		などとなる。

2001/08/22

   clean up
	File::Spec を使うように変更


2001/08/21

   Tie::JournaledDir クラスの創設
   Tie::JournaledFile の clean up

	Tie::JournaledDir クラスはキャッシュとしてあるディレクトリを使い、
	その中の複数個のファイルを順番に使います。
	それぞれのファイルは Tie::JournaledFile を使ってアクセスします。

	これにより auto expiration をする Journaled 型キャッシュを実現
	します。

	add Tie::JournaledDir which wraps Tie::JournaledFile and uses some
	directory as cache area. 

	add/update test tools for Tie::Journaled{File,Dir} modules.

	clean up Tie::JournaledFile
	o remove header in the cache file
	o $self->{ 'key' }
	o $debug is on if $ENV{'debug'} is defined.
	o more carefull check of whether the value is defined or not.
	o quotemeta() for pre search key in find()
	o rename grep() to find()

2001/08/19

  フィルタコードの改良
	一行メールか否か？の判定コードをきれいにする

		そのために signature や引用か？を判定するコード他を書く
		Utils.pm もきれいにし、いらないコードを消した。
		

2001/08/06

  フィルタ
	clean up 

  fml/lib/
  fml/etc/
	変数名の変更をする。s/header_check/header_loop_check/
	ループチェックの設定であることを変数名自体ではっきりさせる

  IO::Adapter

	IO::Adapter
		set @ISA = qw(IO::Adapter::ErrorStatus) to call error_set()
		check $@ before call configure()
		add more debug codes

	IO::Adapter::MySQL
		メインの部分を 	IO::Adapter::SQL:: 以下へ移す
		IO::Adapter::MySQL は単なるフロントエンドにする

2001/08/02

   Mail::Message
	bug fix wrong handling of "\n" at the last of part

2001/07/31

   rename FML::NL to FML::Language

   Mail::Bounce class

	以下のパターンを解析できるようになったはずです。
		Lotus Notes
		pakeo.ne.jp
		jp-r.ne.jp (ほんとか?)

	Mail::Bounce::Language::Japanese
		日本語依存パーサを作成する

   Mail::Bounce::DSN

	call again $self->address_clean_up($addr, $addr)
	gives $addr itself as a hint of fixing broken address
	domain part of $addr may match someting e.g. nifty.ne.jp, webtv.ne.jp.

   Mail::Bounce.pm
   Mail::Bounce::FixBrokenAddress.pm 

	use Mail::Bounce::FixBrokenAddress to clean up address

	Mail::Bounce::FixBrokenAddress class provides irrgular
	address handlings, so handles domain/MTA specific addresses.
	For example, nifty.ne.jp, webtv.ne.jp, ...

2001/07/30

   Mail::Bounce class

        pick up Reporting-MTA and Received-From-MTA in DSN

	clean up documentation
	add error examples

	modify Mail::Bounce::$module return "hints" to caller
	(Mail::Bounce class). 

2001/07/19

   add errormail samples

	freeserve.ne.jp
	webtv.ne.jp

2001/07/15

   設定変数

	pid を _pid へ変更

   FML::Config

	enable read and write configuration file

	コメントを保存しつつ postfix スタイルの設定ファイルの
	読み書きを可能にするように

2001/07/15

   このファイルを創設する:)

$FML: CHANGES.txt,v 1.13 2001/09/22 14:52:04 fukachan Exp $

