I first came across MIME::Lite about 2 years ago when working on an online mail system. We had some in house code that we had been using to create outgoing messages, but it was ugly and brittle.

MIME::Lite in a Nutshell

### Create a new multipart message: $msg = MIME::Lite->new( From =>'me@myhost.com', To =>'you@yourhost.com', Cc =>'some@other.com, some@more.com', Subject =>'A message with 2 parts...', Type =>'multipart/mixed' ); ### Add parts (each "attach" has same arguments as "new"): $msg->attach(Type =>'TEXT', Data =>"Here's the GIF file you wanted" ); $msg->attach(Type =>'image/gif', Path =>'aaa000123.gif', Filename =>'logo.gif', Disposition => 'attachment' );
Output a message:
### Format as a string: $str = $msg->as_string; ### Print to a filehandle (say, a "sendmail" stream): $msg->print(\*SENDMAIL);
Send a message:
### Send in the "best" way (the default is to use "sendmail"): $msg->send;
MIME::Lite supports several methods to send the message via SMTP.

If you need to create a valid email with attachments then MIME::Lite is one of the easiest most mature modules I have found. Easy because you don't need to know much about RFC822 to use it. The public interface that it offers is well thought out and provides access to almost every aspect of the class. That is also why I feel it is a very mature module. As of this write up it is on version 2.117. The author of this module is also the author of MIME-tools. The interface for MIME::Lite is much easier for the end user then that of MIME-tools in my opinion. MIME-tools have a steep learning curve if you are new to Perl. Regardless the authors understanding of the MIME proctocol is much more indepth then most people will need and MIME::Lite provides a simpe way to build outgoing mail messages.

MIME-tools Review
MIME::Lite documentation

In reply to MIME::Lite - For outging mail with attachments by trs80

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.