
===== ChangeLog of Mail::Message version 4.*

Unless noted otherwise, these changes where initiated and applied by
Mark Overmeer.

Limitations to be fixed:
	- when lines are over 997 chars, then the transfer-encoding should
	 automatically change from 'none' into 'quoted-printable' or 'base64'

#!!! Mail::Box 3 compatibility is still maintained on github in branch
#!!! maint3, and published.  So: you may find newer versions with major
#!!! number 3.  Use (at least) version 4 for new developments.
#!!! Convert? See https://github.com/markov2/perl5-Mail-Box/wiki/

version 4.05: Fri 10 Apr 11:00:52 CEST 2026

	Fixes:
	- parse X-MLServer [Edoardo Geraci]
	- $msg->string must end with a newline [Andy Beverley]
	- fold fields with newline [Edoardo Geraci]

	Improvements:
	- Mail::Message->new(message_id) replaces messageId: parameters should
	  not use camel-casing.  Old attribute now deprecated.
	- Mail::Message add clean attributes for fieldType, headType, bodyType,
	  and isTrusted.
	- remove version of introduction indicators '[3*]', because version 4 is
	  not backwards compatible anyway.

version 4.04: Wed  4 Feb 15:52:45 CET 2026

	Fixes:
	- date field parsing regression
	  GitHub issue #28 [Andy Beverley]

version 4.03: Mon 26 Jan 14:53:24 CET 2026

	Fixes:
	- field attributes must be handled case-insensitive.
	  GitHub issue #5 [Andy Beverley]
	- wrongly added LF after multipart parts which do not end in a LF
	  [Andy Beverly]
	
version 4.02: Thu 22 Jan 09:18:53 CET 2026

	Fixes:
	- $msg->study [Andy Beverley]

version 4.01: Sat 13 Dec 12:15:47 CET 2025

	Fixes:
	- optional modules -> recommends.
	- recommends minimal Mail::Box 4.

version 4.00: Thu 11 Dec 13:58:01 CET 2025

	Changes:
	- use Mail::Box 4 exception model: use Log::Report

	Fixes:
	- ::Field::Date regex [Andy Beverley]

	Improvements:
	- use Log::Report
	- use base -> use parent
	- added tests for parsing date field.
	- added tests for parsing comment field to release.

version 3.019:

	Changes:
	- remove questions for optional dependencies during install.

	Fixes:
	- nested bodies which specify a Content-Transfer-Encoding [Andy Beverly]
	- build(data) with only 3-bytes utf8 encoding not detected [Andy Beverly]
	- ::TransferEncoding::Binary::encode() was broken
	  github issue #24 [Jacob Balazer]

	Improvements:
	- add $msg->endsOnNewline()
	- restyle code according to OODoc 3.05
	- convert Makefile.PL to OODoc 3.05
	- remove ::Replace::MailInternet::nntppost() because it never worked.
	- explicitly depend on Mail::Message v3, not 4

version 3.018_001: Thu 21 Aug 10:15:05 CEST 2025

	Fixes:
	- at message construction, do not detect charset for binaries.
	  Big performance improvement GitHub#21
	- charset detection upto 45% faster.  GitHub#22
	- setting eol() on a body was not lazy enough, and mutulated caller.
	  GitHub#23
	- protect two isa calls with blessed.
	- ::Field::Full q-encoding must encode the '=' as well [Andy Beverley]

	Improvements:
	- do not use bareword file-handles anywhere in the code.
	- use s///r
	- cleanup syntax of Mail::Box::FastScalar
	- use defined-or
	- add Attributes section to documentation
	- implement Mail::Box::Parser::Lines, 49% faster for in-memory emails

version 3.017: Fri 18 Apr 18:29:10 CEST 2025

	Improvements:
	- add .gitignore.
	- warn against bounce.
	- Content-Disposition "reaction", RFC9078
	- Content-Language support, RFC3282
	- refer to IANA list of transfer encodings, RFC4289
	- refer to RFC6854 for use of address groups in From and Sender.
	- refer to RFC5322 for handling of white-space and folding in
	  structured headers.

version 3.016: Wed 27 Nov 10:53:40 CET 2024

	Changes:
	- when (illegally) multiple attributes with the same name are used
	  in a single header line, then the last is returned.  Just like
	  Apple and Outlook do.  Originally returned the first.
	  github issue 20 [Todd Richmond]
	- Require Perl 5.16 (2012), for some language features. [cpantesters]

version 3.015: Mon 11 Dec 09:58:17 CET 2023

	Fixes:
	- accept empty fields without complaint. [Andy Beverley]
	- fix counting epilogue trailing blank [Gregor Herrmann] GitHub#18, RT#150141

version 3.014: Wed 18 Oct 12:16:55 CEST 2023

	Changes:
	- handle utf8 in address phrases, according to RFC5335 (since
	  2008 experimental)  May show some changes in your regression
	  tests.  [Andy Beverley]

	Fixes:
	- epilogue starter test needs ^ anchor
	  github issue #16 [Jacob Balazer]
	- existing preamble should keep at least one empty string to
	  indicate its existence.
	  github issue #18 [Jacob Balazer]
	- clean error when field names are too long w.r.t. the fold
	  wrap.  Found by [Raphaël Gertz]

version 3.013: Sat 24 Jun 17:25:11 CEST 2023

	Changes:
	- In header lines, leave the actual white-space related to FWS
	  intact.  You may want to add s/\t/ / before you print a header.
	  GitHub#7 [Jacob Balazer]
	- When the comment in an address has no closing ')', do consume
	  the whole remaining line, not fail parsing.
	  GitHub#6 [Jacob Balazer]
	- When the charset of a ::Body is not specified, a real attempt is
	  made to autodetect the best setting.  For reading, constructing,
	  and writing bodies.  GitHub#12 [Jacob Balazer]
	  ** This may change the output of your regression tests: previously,
	  the default interpretation was 'us-ascii' for reading and 'utf-8'
	  for writing.

	Fixes:
	- ::Field::Full consumePhrase() should take minimal encoded
	  phrase [Jonas Ryssel]
	- ::Field::Address overloaded cmp() used 'eq' where it should
	  have been 'cmp'
	- partNumber when the multipart parent is a nested [Geoffrey Bennett]
	- ::Body::Multipart, even when there is only a single \n after the
	  trailing boundery, then there is a epilogue.
	  github issue #16 [Jacob Balazer]

	Improvements:
	- run regression-tests with MIME::Entity on devel system.
	- ::Body->decode autodects missing charset.
	- The ability to set the charset detector via ::Body::Encode
	  method charsetDetectAlgorithm()
	- New release of User::Identity
	- When the message/rfc822 and has Content-Transfer-Encoding, then do
	  not parse it as "nested" but as normal part.
	  github issue #17 [Todd Richmond]

version 3.012: Fri 11 Feb 11:34:31 CET 2022

	Fixes:
	- ::Field::Attributes should be stored case intensively
	  rt.cpan.org#140894 [Yanyan Yang]
	- ::Field::Full phrase with encoding qp parsing failed when
	  the qp contains non-atext characters. Github#2 [Andy Beverley]
	- ::Field::Full QP encoding must be more strict for use in
	  MIME headers.  Github#3 [Andy Beverley]
	- Coercion from Mail::Address to Mail::Message::Full::Address
	  is too lazy.  Github#4 [Andy Beverley]

	Improvements:
	- extend date in mbox-separator to accept 203X as well.

version 3.011: Tue 27 Jul 13:30:38 CEST 2021

	Improvements:
	- textAlternativeForHtml can now be configured to actually change
	  left- and rightmargin [Tristan Miller]

version 3.010: Wed 14 Oct 19:22:36 CEST 2020

	Fixes:
	- username of address as quoted-string. [Andy Beverley]

version 3.009: Fri  7 Feb 15:22:18 CET 2020

	Fixes:
	- avoid folding inside phrases.  Also, encode more characters.
	  Reported by [Andrew Beverley]

version 3.008: Mon 11 Feb 12:30:40 CET 2019

	Fixes:
	- test with windows path [cpantesters]
	- when a message gets coerced, its components should not be delayed [fany]
	- date fields recognizing 2-digit years [Andrew Beverley]

	Improvements:
	- failing AUTOLOAD on ::Body gives unclear error
	- dates after 2030 for message separator in mbox

version 3.007: Mon  3 Sep 07:58:36 CEST 2018

	Changes:
	- nicer algorithm to generate disposition filenames.

	Fixes:
	- fix metadata [Mohammad S Anwar]
	- enforce stringification on ::Field::Attribute->new(value) [Andy Beverley]
	- dispositionFilename() accepts (some) blanks, strips more chars
	  rt.cpan.org#125350 [Gary Funck]
	- understand quotes in a field body for get() [Andy Beverley]

	Improvements:
	- add pod tester

version 3.006: Wed 24 Jan 16:55:26 CET 2018

	Improvements:
	- spell corrections rt.cpan.org#123993 [Damyan Ivanov, debian]
	- add some 'use warnings'
	- convert to GIT
	- publish on GitHUB

version 3.005: Fri 22 Dec 09:43:45 CET 2017

	Fixes:
	- repair loose dependency on Mail::Transport [cpantesters]
	  rt.cpan.org#123929 [Slaven Rezic]

version 3.004: Thu 21 Dec 09:08:52 CET 2017

	Fixes:
	- field unfold replaces leading whitespace into blank. [Mark Nienberg]

	Improvements:
	- improve docs on $msg->send().

version 3.003: Wed  8 Nov 13:02:24 CET 2017

	Fixes:
	- incorrect use of reftype.   rt.cpan.org#121244 [Matthew Darwin]
	- missing 'use warnings' in ::Build

version 3.002: Mon  4 Sep 21:30:43 CEST 2017

	Improvements:
	- support structured Authentication-Results header.
	- decompose structured DKIM-Signature header
	- folding of encoded unstructured fields do now take length of header into
	  account.

version 3.001: Wed 26 Jul 14:22:22 CEST 2017

	Fixes:
	- license accidentally changed to 'artistic', back to 'perl'
	  rt.cpan.org#120319 [Jitka Plesnikova]
	- have some log-level on object already during init.

	Improvements:
	- new option ::Body::new(filename)

version 3.000: Thu  2 Feb 15:39:10 CET 2017

	Changes:
	- split-off from Mail::Box
	- supports perl from 5.10 (was 5.8.5)
