"Email::Abstract" provides module writers with the ability to write
representation-independent mail handling code. For instance, in
the cases of "Mail::Thread" or "Mail::ListDetector", a key part of
the code involves reading the headers from a mail object. Where
previously one would either have to specify the mail class required,
or to build a new object from scratch, "Email::Abstract" can be
used to perform certain simple operations on an object regardless
of its underlying representation.

"Email::Abstract" currently supports "Mail::Internet", "MIME::Entity",
"Mail::Message", "Email::Simple" and "Email::MIME". Other
representations are encouraged to create their own "Email::Abstract::*"
class by copying "Email::Abstract::EmailSimple". All modules
installed under the "Email::Abstract" hierarchy will be automatically
picked up and used.

Homepage:
https://metacpan.org/release/Email-Abstract
