I prefer to use
MIME::Lite for generating the
email itself and
Net::SMTP for sending the email.
MIME::Lite for me is a no-brainer because it makes it totally
painless to add attachments, etc.
I like to use Net::SMTP when it comes to actually sending the
mail for a few reasons:
- better error handling - you are controlling the SMTP exchange
so if there are any errors anywhere in the process you can handle
them exactly how you want to (you can switch to a fallback mailserver, queue
the message for later, or something else).
- significantly faster than forking off a sendmail process.
The power of Net::SMTP comes at a price: more code. It won't
be a one or two liner to send mail anymore because you'll need to
handle the complete SMTP transaction with error checking, etc.