changes(3)

๐Ÿ’– CHANGE LOG ๐Ÿ’–

Okay bestie, so this is changes(3) โ€” the User Contributed Perl Documentation page. It's the whole change log, and it's long, so it comes in 2 parts. This is part 1. Grab a boba, we're going in. โœจ


Version 3.035

  • No changes since previous version, just made non-trial. Periodt, she's stable. ๐Ÿ’…

Version 3.034 (TRIAL)

  • Add in-reply-to to known field list. ๐Ÿฆ‹
  • Remove Date header when setting top_level off. ๐Ÿ™ˆ
  • Do not quote rfc2331-encoded parameters. ๐Ÿ’€
  • Automatically fold headers, if needed. ๐ŸŽ€

Version 3.033

  • No changes since previous version, just made non-trial. Same energy, now official. โœจ

Version 3.032

  • Fix an error in printing to Net::SMTP (thanks, Peter Heirich). We love a bug fix. ๐Ÿซถ
  • Add "use warnings" and require v5.6. Safety first, bestie. ๐Ÿ”ฅ

Version 3.031

  • Add an SSL option to connect to the SMTP relay via SSL on port 465. (thanks, Max Maischein) ๐Ÿ”’
  • Document some tips on using non-ASCII content with MIME::Lite (thanks, traveljury.com and Tom Hukins). ๐ŸŒˆ

Version 3.030

  • Make send_by_sendmail set sender like documentation says it does (thanks, Michael Schout!). Documentation finally telling the truth, iconic. ๐Ÿ‘‘

Version 3.029

  • Allow the MIME-Version header to be replaced (thanks, Florian!). Customization slay. ๐Ÿ’…

Version 3.028

  • Various documentation fixes. Not me reading the docs and finally understanding. ๐Ÿ“š

Version 3.027

  • Add send_to_testfile method (Thanks, AlexanderBecker). Testing era. ๐Ÿงช

Version 3.026

  • Fix tests to pass with MIME::Types 1.28. Version compatibility, we love to see it. โœ…

Version 3.025

  • Added back support for providing a non-default SMTP port (#21156, #48783, thanks John Bokma!). The port glow-up is real. ๐Ÿ”Œ

Version 3.024

  • add git repo link to metadata. Link in bio energy. ๐Ÿ”—

Version 3.023

  • Correct erroneous changelog entry. Not the changelog lying about itself. ๐Ÿ˜ญ
  • Fix typo in perldoc: utf-8, not utf8. Hyphenate or perish. ๐Ÿ’€

Version 3.022

  • Behave on Cygwin as on Win32 with regard to defaulting to SMTP sending. Consistency bestie. ๐Ÿฆ‹
  • Respect crazy people who put multiple Cc or Bcc headers in message (#30574, thanks Pavel V. Rochnyack!). Chaos respected. ๐Ÿ™ˆ
  • We no longer rewrite array and hash refs in the send_by_sendmail args so aggressively. Gentle parenting the refs. ๐ŸŽ€
  • Cope with missing local sendmail (thanks to Debian for patching for this, and for putting up with me (rjbs) being an insufferable jerk!). Debian said "we got you". ๐Ÿซถ
  • Fix weird unicode-in-$1 bug (thanks SREZIC!). Regex unicode said no. ๐Ÿ’€
  • Other minor bug fixes. Little slays. โœจ

Version 3.021

  • Replace Email::Date with Email::Date::Format to limit prereqs (Email::Date::Format produced just for this!). Dedicated module, main character energy. ๐Ÿ‘‘
  • Begin the process of removing use of ExtUtils::TBone for testing. Out with the old. ๐Ÿงน

Version 3.020

  • Optimized code for speedup of creation of two-part messages. The internal structure of the object has changes, but that won't matter if you were using the published interface. (Sam Tregar) Faster, and if you stayed in your lane you're fine. ๐ŸŽ๏ธ
  • Removed the "advanced features", ie auto-fallback delivery, from send_by_smtp. They didn't belong there in the first place. Not the feature creep. ๐Ÿ’…

Version 3.01_06 (2007/07/29)

  • First release from Perl Email Project. Updated packaging. New era. ๐ŸŒธ

Version 3.01_04 (2004/05/05)

  • Reworked the new send_by_smtp stuff. Documentation modifications. Rework, document, repeat. ๐Ÿ”

Version 3.01_02 (2003/08/28)

  • Well, it seems 3.01_01 failed tests on Win32 due to me accidentally changing the line ending format to DOSish. Also the way that email extraction for SMTP with or without Mail::Address was different (from 2.117 even). So ive fixed that. Line endings are a scam. ๐Ÿ˜ญ
  • Anybody depending on the undocumented extract_addrs() is in for a suprise. I suggest you look at using Mail::Address. Undocumented API said bye. ๐Ÿ’€

Version 3.01_01 (2003/04/25 - 2003/08/21)

  • (This version is a test release, if its ok then I'll re-release it as 3.02) Trial run, bestie. ๐Ÿงช
  • Patched the pod to use correct entities Thanks to Ed Avis for the patch. Added better support for funky names in the from field when sending via SMTP, thanks to prodding by Darren Hemphill and Ollie Gallardo. (Actually I kind of messed this up orginally and no doubt Darren wasn't impressed. I ended up using something pretty close to his solution. My bad for not paying more attention. Sorry mate.) Growth is apologizing in the changelog. ๐Ÿซถ
  • 08/21: Apparently I never uploaded my changes for this version to CPAN. Sigh. CPAN upload said sike. ๐Ÿ˜ญ

* Win32 CHANGES *

  • Up until this release the default send() method for all OS'es has been to invoke sendmail and pipe the mail to it. This behaviour has now changed on Win32 to default to using SMTP. This means that if your /site/lib/Net/libnet.cfg file is properly configured then you can use SMTP without specifying a send method explicitly. This seemed a rational decision as most Win32 users who send mails are using an SMTP server and not a tool like sendmail. Win32 said "SMTP era". ๐ŸชŸ

* SMTP CHANGES *

  • Jonathan Eunice <jeunice at illuminata dot com> pointed out an interesting bug in the interaction between MIME::Lite and Net::SMTP/Net::CMD. This was that sending a mail ending in "\n\n" without additional encoding would cause Net::CMD to send an incorrect end of mail signal to the SMTP server which would result in A) The mail failing to be sent due to a timeout, and B) MIME::Lite to report that all was well. Lying success is the worst kind. ๐Ÿ’€
  • This has been fixed by checking to make sure that if the last character sent was \n, but the last two chars were not \r\n then the \n is turned into an \r, which Net::CMD then adds an \n to and then sends the normal ".\r\n" to terminate the message. Weird error, that im not entirely sure has been resolved properly. Please inform me if this screws anything up that it shouldn't. Weird little beast, but fixed-ish. ๐Ÿ”ง
  • As stated earlier send_by_smtp wasnt extracting the _real_ email address from the overall fancy once specified in the From: field. This is resolved now, fancy display names are now possible while using SMTP. Fancy names, but make it functional. ๐Ÿ’…

* Content-Id *

  • It was pointed out by alex via CPAN RT that Content-Id needs to have angle brackets around it or HTML mails dont show up properly in many mail clients, furthermore the RFC mandates it (to be honest im taking his word on this, please feel free to yell at me if this causes trouble), so as he suggested I am automatically adding them in they arent provided. Angle brackets or it didn't happen. ๐ŸŽ€

* sendmail path *

  • Dom pointed out via CPAN RT that despite some effort going in to trying to discover the correct location of sendmail, that it was still using a bad default. Fixed. Path discovery said finally. ๐Ÿ›ค๏ธ

* Date Stamping *

  • Kurt reported via RT that datestamps were not being correctly formatted. His patch has been incorporated with only one change, a comment where Perl was spelled PERL :-) Respect the capitalization. ๐Ÿ“…

* Quoted printable fix *

  • Klaus Rusch noted a bug in how quoted-printable handled weird \r\n combinations. Fixed now. CRLF chaos contained. ๐Ÿงผ

Version 3.01 (2003/04/25)

  • Eryq has reappeared long enough to graciously hand over the maintaince of the module to me. Thanks. Passing the torch. ๐Ÿ”ฅ

Version 3.00 (2003/04/24)

  • Eryq has disappeared. His web site remains but he doesnt answer emails. Ghosted, but the website is still up. ๐Ÿ‘ป
  • I have taken it onto myself to take over maintenance until he returns to reclaim his excellent work. Main character move. ๐Ÿ‘‘
  • I don't intend to develop this in an serious way. I'll patch it if people have a patch and generally keep it ticking over, but dont expect new features. Maintenance mode, but honest. ๐Ÿ› ๏ธ
  • This release has code that actually works with MIME::Lite now. As well as a few other minor additions (like a test for this functionailty). It works! Groundbreaking. โœจ
  • For stuff that could be done, a first place would be to rewrite and extend the test suite. It should use Test::More or Test::Builder at the very least. Test glow-up pending. ๐Ÿงช
  • I also might rip out the preformatted doc pages. It makes the distro way fatter than it needs to be. I reckon the package contains the POD in at least three forms. A wee tad overkill I think. :-) POD in three forms is giving hoarder. ๐Ÿ“ฆ

Version 2.117 (2001/08/20)

  • The terms-of-use have been placed in the distribution file "COPYING". Also, small documentation tweaks were made. Legal bestie has entered the chat. โš–๏ธ

Version 2.116 (2001/08/17)

  • Added long-overdue patch which makes the instance method form of send() do the right thing when given HOW... arguments. Thanks to Casey West for the patch. Long overdue, but we got there. ๐Ÿซถ

Version 2.114 (2001/08/16)

  • New special 'AUTO' content type in new()/build() tells MIME::Lite to try and guess the type from file extension. To make use of this, you'll want to install MIME::Types. The "AUTO" setting can be made the default default (instead of "TEXT") if you set "$AUTO_CONTENT_TYPE = 1, $PARANOID = 0". Thanks to Ville Skyttรค for these patches. AUTO detective mode. ๐Ÿ”
  • File::Basename is used if it is available. Thanks to Ville Skyttรค for this patch. If available, she's used. ๐ŸŽ€
  • SMTP failures (in send_by_smtp) now add the $smtp->message to the croak'ed exception, so if things go wrong, you get a better idea of what and why. Thanks to Thomas R. Wyant III for the patch. Error messages with lore. ๐Ÿ˜ญ
  • Made a subtle change to "as_string" which supposedly fixes a failed MIME data.t test with Perl 5.004_04 on NT 4 sp6. The problem might only exist in this old perl, but as the patch author says, not everyone has climbed higher on the Perl ladder. Thanks to John Gotts for the patch. Old Perl representation. ๐Ÿชœ
  • Added "contrib" directory, with MailTool.pm. Thanks to Tom Wyant for this contribution. Contrib era. ๐Ÿ“
  • Improved HTML documentation (notice the links to the individual methods in the top menu). Links in the top menu, we love navigation. ๐Ÿ”—
  • Corrected some mis-docs. Docs said oops. ๐Ÿ“

Version 2.111 (2001/04/03)

  • Added long-overdue parts() and parts_DFS() methods. Finally. ๐ŸŽ‰
No instance method For accessing the subparts? That can't be right. D'OH!
  • Added long-overdue auto-verify logic to print() method. Verify before you print. โœ…
  • Added long-overdue preamble() method for getting/setting the preamble text. Thanks to Jim Daigle for inspiring this. Preamble said hello. ๐Ÿ‘‹

Version 2.108 (2001/03/30)

  • New field_order() allows you to set the header order, both on a per-message basis, and package-wide. Thanks to Thomas Stromberg for suggesting this. Header order, your rules. ๐Ÿ“ฌ
  • Added code to try and divine "sendmail" path more intelligently. Thanks to Slaven Rezic for the suggestion. Divine the path, periodt. ๐Ÿ”ฎ

Version 2.107 (2001/03/27)

  • Fixed serious bug where tainted data with quoted-printable encoding was causing infinite loops. The "fix" untaints the data in question, which is not optimal, but it's probably benign in this case. Thanks to Stefan Sautter for tracking this nasty little beast down. Thanks to Larry Geralds for a related patch. Infinite loop said not today. ๐ŸŒ€
"Doctor, O doctor: it's painful when I do this --" "Simple: don't do that."
  • Fixed bugs where a non-local $_ was being modified... again! Will I never learn? Thanks to Maarten Koskamp for reporting this. $_ said stop touching me. ๐Ÿ™ˆ
Dollar-underscore can poison distant waters; 'local' must it be.
  • Fixed buglet in add() where all value references were being treated as arrayrefs, instead of as possibly-self-stringifying object refs. Now you can send in an object ref as the 2nd argument. Thanks to dLux for the bug report. Object refs are valid, bestie. ๐Ÿ’…

Okay that's part 1, and bestie, we are not done โ€” part 2 is literally next. Don't go anywhere. ๐Ÿ’–

That ref is a string? Operator overload has ruined my day.

Added "Approved" as an acceptable header field for new(), as per RFC1036. Thanks to Thomax for the suggestion regarding MIME-tools. ๐Ÿซถ

Small improvements to docs to make different uses of attach() and various arguments clearer. Thanks to Sven Rassman and Roland Walter for the suggestions. โœจ


Version 2.106 (2000/11/21) ๐ŸŽ€

Added Alpha version of scrub() to make it easy for people to suppress the printing of unwanted MIME attributes (like Content-length). Thanks to the many people who asked for this. ๐Ÿ‘‘

Headers with empty-strings for their values are no longer printed. This seems sensible, and helps us implement scrub(). ๐Ÿ’…


Version 2.105 (2000/10/14) ๐Ÿ˜ญ

The regression-test failure was identified, and it was my fault. Apparently some of the \-quoting in my "autoloaded" code was making Perl 5.6 unhappy. For this nesting-related idiocy, a nesting kaiku. Thanks to Scott Schwartz for identifying the problem.

   In a pattern, my
      backslash-s dwells peacefully,
   unambiguous --

      but I embed it
         in a double-quoted string
      doubling the backslash --

         interpolating
            that same double-quoted string
         in other patterns --

            and, worlds within worlds,
               I single-quote the function
            to autoload it --

         changing the meaning
      of the backslash and the 's';
   and Five-Point-Six growls.

Version 2.104 (2000/09/28) ๐Ÿฆ‹

Now attempts to load and use Mail::Address for parsing email addresses before falling back to our own method. Thanks to numerous people for suggesting this. ๐Ÿ’–

   Parsing addresses
      is too damn hard. One last hope:
   Let Graham Barr do it!

For the curious, the version of Mail::Address appears as the "A" number in the X-Mailer:

X-Mailer: MIME::Lite 2.104  (A1.15; B2.09; Q2.03)

Added FromSender option to send_by_sendmail(). Thanks to Bill Moseley for suggesting this feature. ๐ŸŒธ


Version 2.101 (2000/06/06) ๐Ÿ”ฅ

Major revision to print_body() and body_as_string() so that "body" really means "the part after the header", which is what most people would want in this context. This is not how it was used 1.x, where "body" only meant "the body of a simple singlepart". Hopefully, this change will solve many problems and create very few ones. ๐Ÿ™ˆ

Added support for attaching a part to a "message/rfc822", treating the "message" type as a multipart-like container. โœจ

Now takes care not to include "Bcc:" in header when using send_by_smtp, as a safety precaution against qmail's behavior. Thanks to Tatsuhiko Miyagawa for identifying this problem. ๐Ÿ‘‘

Improved efficiency of many stringifying operations by using string-arrays which are joined, instead of doing multiple appends to a scalar.

Cleaned up the "examples" directory. ๐Ÿงš


Version 1.147 (2000/06/02) ๐Ÿ’œ

Fixed buglet where lack of Cc:/Bcc: was causing extract_addrs to emit "undefined variable" warnings. Also, lack of a "To:" field now causes a croak. Thanks to David Mitchell for the bug report and suggested patch.


Version 1.146 (2000/05/18) ๐ŸŒˆ

Fixed bug in parsing of addresses; please read the WARNINGS section which describes recommended address formats for "To:", "Cc:", etc. Also added automatic inclusion of a UT "Date:" at top level unless explicitly told not to. Thanks to Andy Jacobs for the bug report and the suggestion. ๐Ÿซถ


Version 1.145 (2000/05/06) ๐Ÿ’…

Fixed bug in encode_7bit(): a lingering "/e" modifier was removed. Thanks to Michael A. Chase for the patch.


Version 1.142 (2000/05/02) โญ

Added new, taint-safe invocation of "sendmail", one which also sets up the "-f" option. Unfortunately, I couldn't make this automatic: the change could have broken a lot of code out there which used send_by_sendmail() with unusual "sendmail" variants. So you'll have to configure "send" to use the new mechanism:

MIME::Lite->send('sendmail');       ### no args!

Thanks to Jeremy Howard for suggesting these features. โœจ


Version 1.140 (2000/04/27) ๐Ÿ“

Fixed bug in support for "To", "Cc", and "Bcc" in send_by_smtp(): multiple (comma-separated) addresses should now work fine. We try real hard to extract addresses from the flat text strings. Thanks to John Mason for motivating this change. ๐Ÿ’–

Added automatic verification that attached data files exist, done immediately before the "send" action is invoked. To turn this off, set $MIME::Lite::AUTO_VERIFY to false. ๐Ÿ‘‘


Version 1.137 (2000/03/22) ๐Ÿฆ‹

Added support for "Cc" and "Bcc" in send_by_smtp(). To turn this off, set $MIME::Lite::AUTO_CC to false. Thanks to Lucas Maneos for the patch, and tons of others for the suggestion. ๐ŸŒธ

Chooses a better default content-transfer-encoding if the content-type is "image/*", "audio/*", etc. To turn this off, set $MIME::Lite::AUTO_ENCODE to false. Thanks to many folks for the suggestion. โญ

Fixed bug in QP-encoding where a non-local $_ was being modified. Thanks to Jochen Stenzel for finding this very obscure bug! ๐Ÿ’€

Removed references to "$", "$'", and $&` (bad variables which slow things down).

Added an example of how to send HTML files with enclosed in-line images, per popular demand. ๐Ÿ”ฅ


Version 1.133 (1999/04/17) ๐ŸŽ€

Fixed bug in "Data" handling: arrayrefs were not being handled properly.


Version 1.130 (1998/12/14) ๐Ÿ‘‘

Added much larger and more-flexible send() facility. Thanks to Andrew McRae (and Optimation New Zealand Ltd) for the Net::SMTP interface. Additional thanks to the many folks who requested this feature. ๐Ÿ’–

Added get() method for extracting basic attributes.

New... "t" tests! โœจ


Version 1.124 (1998/11/13) ๐Ÿงš

Folded in filehandle (FH) support in build/attach. Thanks to Miko O'Sullivan for the code.


Version 1.122 (1998/01/19) ๐Ÿ’œ

MIME::Base64 and MIME::QuotedPrint are used if available.

The 7bit encoding no longer does "escapes"; it merely strips 8-bit characters.


Version 1.121 (1997/04/08) ๐ŸŒˆ

Filename attribute is now no longer ignored by build(). Thanks to Ian Smith for finding and patching this bug. ๐Ÿซถ


Version 1.120 (1997/03/29) ๐Ÿ’…

Efficiency hack to speed up MIME::Lite::IO_Scalar. Thanks to David Aspinwall for the patch.


Version 1.116 (1997/03/19) โญ

Small bug in our private copy of encode_base64() was patched. Thanks to Andreas Koenig for pointing this out.

New, prettier way of specifying mail message headers in build().

New quiet method to turn off warnings.

Changed "stringify" methods to more-standard "as_string" methods. โœจ


Version 1.112 (1997/03/06) ๐Ÿ“

Added read_now(), and binmode() method for our non-Unix-using brethren: file data is now read using binmode() if appropriate. Thanks to Xiangzhou Wang for pointing out this bug.


Version 1.110 (1997/03/06) ๐Ÿ”ฅ

Fixed bug in opening the data filehandle.


Version 1.102 (1997/03/01) ๐Ÿฆ‹

Initial release. ๐ŸŽ‰


Version 1.101 (1997/03/01) ๐Ÿ‘‘

Baseline code. Originally created: 11 December 1996. Ho ho ho. ๐ŸŽ€


okay bestie that's the WHOLE changelog, no skips, no cap ๐Ÿ’– This lil' page is from perl v5.42.0, dated 2026-01-17, and it's the changes(3) manpage โ€” so if you ever need receipts on when a feature dropped or why something behaves the way it does, it's all right here. slay, go read part 1 if you skipped it, ily ๐Ÿซถโœจ

๐Ÿ“ฆ where this page comes from