CHANGELOG of Mail::Box

All changes were made by Mark Overmeer <mark@overmeer.net>, unless
specified differently.

version 2.003: Sat Dec 15 00:47:50 CET 2001

	Fixes:

	- Moved stuff from Mail::Message::Head::read to
	  Mail::Box::Parser::readHeader to improve parser indepency and
	  speed.

	- [Marcel de Boer] showed me that labels were not treated
	  right in Mail::Box v2.  Moved from Mail::Box::Message to
	  Mail::Message and Mail::Message::Head.

	- [Marcel de Boer] also found a problem with cloning of multi-
	  parts which got solved: a Mail::Message::Part is cloned to
	  be a Mail::Message!

	- Quite a speed improvement too.

	- Changed version policy

version 2.002: Fri Dec 13 17:46:01 CET 2001

	Fixes:

	- Better (less complaining) recovery of bad header parsing.

	- Removed a back-reference from a locker object to the folder,
	  by which the folders where kept alive although out of scope.
	  "circular reference".  According the the errors I got when
	  removing this one, there should be no strong refs left.

	- replaced many "warn"s by "$self->log(WARNING =>"s in
	  Mail::Box::Manager.

	- Improved handling and creating folders in the Mail::Box::Manager.

	- A header may be empty, but then it will be 'false'.  This is
	  needed to correctly recover corrupted mbox folders.

	New:

	- Mail::Message::Field::Fast implements a fast but dirty way to
	  store the header information.  Tested in t/11field1.t
	  It saves about 10% memory and 7% performance.

	- Mail::Message::Field::Flex implements an extendible but slower
	  way to manage the data.  Tested in t/11field2.t

version 2.00_19: Wed Dec 12 22:13:56 CET 2001

	Most work about sending messages.  Slight extension of the
	interface for some other packages.

	Fixes:

	- Removed Tassilo's header parser optimization in favor of
	  split again, because it breaks on empty fields.

	- [Tassilo v Parsival] added some 'binmode OUT' lines to
	  make 98% of the tests succeed on Windows!!  But I am not
	  sure that is the right answer.  More on that later.

	New:

	- Added to/from/cc/bcc/subject methods to Mail::Message, to
	  hide Resent- header lines which overrule these fields in the
	  header.  Required for correct rfc822 support.

	- Added destinations() to Mail::Message.

	- Added isResent() to Mail::Message::Field.

	- Added addresses() to Mail::Message::Field, which returns a list
	  of addresses as specified by the header line.

	- Added pod reference to Mail::Message's service methods on header
	  lines.

	- Added Mail::Message::Head::Complete::printUndisclosed() and
	  Mail::Message::printUndisclosed() which is the same as print()
	  but leaving the Cc and Bcc headers out.

	- Added Mail::Transport::putContent($message)

	- Added Mail::Transport::SMTP shaped after Net/SMTP, but much more
	  facilities and real Perl 5 code!  Not ready yet.

version 2.00_18: Mon Dec 10 22:19:44 CET 2001

	- Added some requires for package FileHandle.

	- Added Mail::Transport::Qmail (cannot test it, but expect it
	  to work)

	- Reorganized (and improved the docs) on all Transport modules.

	- Added POSIX fcntl locking.

	- [Tassilo v Parsival] demonstrated the fastest way to split
	  a header, determined by benchmarking 6 variations on the theme.
	  Used in Mail::Box::Parser::Perl.pm

version 2.00_17: Sat Dec  8 23:10:06 CET 2001

	- Moved scripts/web/* to scripts/

	- Header line options in Mail::Message::Construct::reply start
	  with capitals too.

	- Added Mail::Message::Body::Multipart::stripSignature

	- Simplified Mail::Message::Construct::reply a little

	- Fixed problem with the resulting body-types where delayed bodies
	  where used to be encoded and decoded.

	- Extra checks for From-line in mbox folders, to help incorrectly
	  formatted folders.

	- [Tassilo v Parsival] discovered the problematic recovery for
	  erroneous headers.  Some recovery is tried.

version 2.00_16:  Sat Dec  8 16:56:53 CET 2001

	First beta of Mail::Box version 2

        Most import changes:

	* Replaced all use of MIME::Parser, Mail::Internet, and MIME::Entity,
	  althought the foreign message types are still useable in some
	  places.

	* All code has been changed.  Simple things, like opening a folder,
	  reading messages and such are the same.  However handling of
	  messages is really different from the MIME::Entity/Mail::Internet
	  implementation.  Your message handling must be body-oriented ;)
	  tranforming a body into a new body, into a new body, and
	  finally create a new message from it.  See Mail::Box-Cookbook.

	* Moved code to use 5.6.0 features, so no support for 5.005
	  anymore.  This is required for Inline::C and Unicode support.
	  Mail::Box releases below 2 will be supported for some time
	  for people with `old' perl.

	* Parsing in Inline::C or plain Perl

	* folder->open(take_headers) removed
	  folder->open(extract) replaces folder->open(lazy_extract) to
	  avoid double negation in your program.
	  listFolders became listSubFolders
          allMessages became messages(); so $folder->messages always
	  returns all.

	* Unfolding of headers considered stupid: headers which are
	  structured (check Mail::Message::Field::isStructured) may always
	  be multi-lined. Just specify the right options when you scan
	  through the line with regular expressions.

	* All packages is separate files.

	* Many more test, a few example files, Mail::Box-Overview and
	  Mail::Box-Cookbook.

Before this, we had Mail::Box-1.xyz which also has a Changelog.  Most of
that information is not really useful because version >=2.0 is a really,
really major change, although there is strike for compibility.

However, some of the bugfixes contributed for Mail::Box v1 are
still present in Mail::Box v2.