Hi.
> First off, I'd like to be able to process the whole message inside
the
> embedded Perl functions. I'm happy with it being some read-only
> variable or file handle (or even an intrinsic Exim variable that can
> be passed along as a parameter), just so that I can actually do spam
> filtering and return a string fit for headers_add or something.
Exiscan + Spamassassin. SpamAssassin is a Perl solution with plug-in
capabilities:
http://www.spamassassin.org
http://duncanthrax.net/exiscan-acl
You'll find everything about spam/headers/etc there.
> Secondly, I'd like to have a "perl" transport. No, really, I'm
being
> serious. :) Often, I find myself ending up writing custom MDAs, as
I
> need to update some quota counter in a database or whatever, which
> rarely is possible to do properly within Exim itself. But it could
> easily be done within Exim's embedded Perl, which would make all of
my
> home-made external MDAs superfluous. For example:
[....]
Miss again ;-) Pipe transport with Envelope-To header analysis will suit
because Envelope-To header is added by Exim (and stripped by incoming
logic to kill forgeries). That is, Envelope-To is a *trusted* header
indicating *real* SMTP envelope recipient. Another lookup-driven verify
router for checking over quota mailboxes for bounce avoidance. Your pipe
exit code will aid Exim with success/fail/defer, etc.
So *I* don't see any reasons to extend Perl functionality (which is
really odd for most Exim sites, as far as I know). Don't know our big
guy's opinion, though ;-)