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.