Document some tips on using non-ASCII content with MIME::Lite (thanks, traveljury.com and Tom Hukins)
Fix typo in perldoc: utf-8, not utf8
Respect crazy people who put multiple Cc or Bcc headers in message (#30574, thanks Pavel V. Rochnyack!)
We no longer rewrite array and hash refs in the send_by_sendmail args so aggressively.
Cope with missing local sendmail (thanks to Debian for patching for this, and for putting up with me (rjbs) being an insufferable jerk!)
Fix weird unicode-in-$1 bug (thanks SREZIC!)
Other minor bug fixes.
Begin the process of removing use of ExtUtils::TBone for testing
Removed the ``advanced features'', ie auto-fallback delivery, from send_by_smtp. They didn't belong there in the first place.
Anybody depending on the undocumented extract_addrs() is in for a suprise. I suggest you look at using Mail::Address.
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.)
08/21: Apparently I never uploaded my changes for this version to CPAN. Sigh.
*** 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.
*** 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.
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.
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.
*** 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.
*** 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.
*** 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 :-)
*** Quoted printable fix ***
Klaus Rusch noted a bug in how quoted-printable handled weird \r\n combinations. Fixed now.
I have taken it onto myself to take over maintenance until he returns to reclaim his excellent work.
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.
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)
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.
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. :-)
File::Basename is used if it is available. Thanks to Ville Skyttä for this patch.
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.
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.
Added "contrib" directory, with MailTool.pm. Thanks to Tom Wyant for this contribution.
Improved HTML documentation (notice the links to the individual methods in the top menu).
Corrected some mis-docs.
No instance method For accessing the subparts? That can't be right. D'OH!
Added long-overdue auto-verify logic to "print()" method.
Added long-overdue "preamble()" method for getting/setting the preamble text. Thanks to Jim Daigle for inspiring this.
Added code to try and divine ``sendmail'' path more intelligently. Thanks to Slaven Rezic for the suggestion.
"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.
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.
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.
Headers with empty-strings for their values are no longer printed. This seems sensible, and helps us implement scrub().
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.
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.
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.
MIME::Lite->send('sendmail'); ### no args!
Thanks to Jeremy Howard for suggesting these features.
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.
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.
Added get() method for extracting basic attributes.
New... ``t'' tests!
The 7bit encoding no longer does ``escapes''; it merely strips 8-bit characters.
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.