The first thing that got me involved in PEP was Email::Send, which was largely unusable for serious email-related work becase it offered no mechanism for specifying an envelope sender or recipient. It had a bunch of other problems, some of which, we felt made fixing Email::Send in a backwards-compatible way a non-starter.
Internally, at Pobox, we produced something called Email::Send::Mailer, which was a base class for Email::Send mail-sending plugins. It helped solve the problems, but required non-backwards-compatible changes to Email::Send and was, generally, a pretty grody workaround. Immediatley, we started talking about turning that work into a better Email::Send replacement, which we called (in the office and on the mailing list) Email::Sender. After a lot of delays, I've gotten Email::Sender into a state where it's nearly ready for release. I need to do a few significant things, but it's mostly ready to go. You can see it here: http://github.com/rjbs/email-sender Right now, it uses Mouse, unless Moose is already loaded. Mouse has zero prerequisites, so this is no more of an imposition than, say, Class::Accessor. Still, if it's going to ruffle too many feathers, I will release this code as Mail::Xmitter or something. Things that remain to do: * write up SMTP tests that can be used against different servers * prune no-longer-needed prereqs (see Makefile.PL for notes) * move SMTP_X, the persistent SMTP mailer, to xlib until it works * test mbox delivery * improve reporting of individual failures in sending, test it I welcome thoughts, criticism, suggestions, or bug reports. -- rjbs