Good grief, everywhere you turn there's yet another e-mail module! This one says that the message is an object. That one says that every field is an object. Then there's the one that says the darn body is an object!

How many methods do I need to learn, anyway? Look, an e-mail is simple. It's a set of name/value pairs forming a header and a list of lines. That's it! Anybody who tells you otherwise is just being a nervous Nelly.

E'Mail::Acme is the epitome of simple e-mail handling. It does use an object, but only to help produce a synergistic, cohesive unity of purpose. It uses just the familiar, existing Perl data system so that you only need use the Perl you already know -- none of this overwrought API that we've all gotten so sick of.

Any lines in a multi-part e-mail message form the preamble, and an arrayref of subparts is always available at the end of the e-mail -- that is, like this:

my $subparts = $e_mail->[ scalar @$e_mail ];

Nested multipart messages are handled just fine. A multipart content-type will be added, if none has been supplied. If a multipart content-type is set, but the boundary is not, it will be added. Do not set your own boundary unless you know what you are doing! You will probably produce a corrupt message!