in reply to MIME-tools
While Mail::Internet will permit you to manipulate ordinary emails, if you want to deal with attachments or foreign characters, you will eventually have to descend into the world of MIME.
CPAN provides two basic suites for handling such messages: MIME::Lite, which permits generation, but not parsing, and the MIME-tools package, which both generates and parses MIME messages.
Wow, that sounds is if you wanted to say Mail::Sender is advanced ;-)
I guess you just did not notice it there. For others like that ... Mail::Sender is also just for the creation of MIME messages, like MIME::Lite, and to some people it may look more understandable.
The main difference between MIME::* and Mail::Sender is that with MIME::* you first build up a structure of message parts and then do something with the object, while Mail::Sender is like "open the connection, send the headers, start such and such part, send this data, start some other part, send that data and close the connection". Or "open the connection, send this body, attach this file and close".
It wount give you the power of MIME::*, it looks messy if the MIME structure gets more complex, but for simple things it's just fine (I have to know, I'm the author ;-)
As far as the "encoding/deconding" in memory versus on disk goes ... Mail::Sender doesn't do either. It sends everything to the SMTP server immediately.