===== 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.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)