I've been taking a great intrest of late in the Perl Email Project due to the fact that I'm rather paranoid in terms of my MTA setup and I've also done a few things for a mates company using a few of the modules from PEP. However, getting my MTA to work in a fashion that I want is becoming tedious and the size of my exim config keeps growing and growing. While exim is very nice and very configurable, the string expansion doesn't really allow for very strange configuration like I want. I know there's direct perl abilities, but it's still within the constraints of string expansion. So, I'm currently working on the following options.
Very simple module, basically, while Email::Simple deals with E-mails and their contents in an effective manner, it doesn't deal with information from the E-mail from SMTP time. So basically, it's just another simple wrapper that has lots of information about an e-mail and how it has been sent, and you can pull an Email::Simple object out of it as well as Email::Address objects (i think). This will come in very useful for the next module...
Email::Pipeline / Email::AMP
Rightio... more complex one this. The concept is that an Email::Envelope will get dropped into a pipe and each segment along the pipe will study the object and decide if it wants to perform actions on it. It can then drop out of the pipe with some other information such as rejection scores, quarantine, etc. The idea will be to make the system extremely flexible and pluggable.
So, this is funky and gives a lot of flexibility, probably more so than Email::Filter, however there's one big problem with using Email::(Pipeline/AMP) as a
YES! I'm crazy, i want to write an ESMTP server just for use with my pipeline stuff. There's good reason for this though, and it's this... it's far more flexible than an MTA written in C!
Since there are no current prototypes, I'm going to blame Marty Pauley as I'm going to be going from a test first development approach. So, I promise that all of these modules will have a through testsuite and be extremely well documented. I will also be passing the distributions off to simon wistow and casey west before uploading to PAUSE, so that I can check that documentation and API suits the style of the PEP.
One last thing, I wish to thank my employer for giving their support for me to work on this project, though not on work time... =0/