[SGVLUG] Adding A/V scanning to e-mail processing
Jeff Carlson
jeff at ultimateevil.org
Fri Nov 4 01:56:57 PST 2005
Emerson, Tom wrote:
> This (may) be one benefit of running postfix instead of sendmail --
> postfix DOES allow you per-user calls to spamassassin, and by
> extension, per-user preferences. It takes a bit of getting it
> pounded-into-my-head, but essentially incoming e-mail is rerouted to
> a "filter" [milter] process; this in turn will re-submit the e-mail,
> but since it comes from a different "source", it doesn't get passed
> to spamassassin. when re-routing a message to a filter, postfix
> allows the use of variables such as "$(user)", "$(sender)",
> "$(recipient)", and so on. Upon cleaning/tagging, the "local
> delivery" path is taken instead of the "route through spamassassin".
That's interesting. First, bear in mind that I, like quite a few other
people, use Cyrus for delivery and storage, and Cyrus is designed as a
closed system, where mail accounts don't necessarily indicate system
users, and their passwords are definitely not meant to be the same.
Often, SpamAssassin just runs with the settings of the user owning that
process, so it relies on the delivery agent to have been started under
that user identity. Of course, there's the -u flag for spamc, which
avoids this.
If a message is addressed to multiple ${recipient}s, what happens when
one user has a low threshold and sets the SpamAssassin based filter to
bounce or discard the message if it is spam? Does the sender get bounce
messages back from some of the recipients, but not all, or does nobody
in that list get the message because one person's settings were restrictive?
These are just the issues I had to deal with. If these aren't issues on
postfix then it means the MTA is running the subprocess repetitively,
which from an SMTP standpoint, seems wrong. I mean, the DATA portion of
the conversation is effectively over at that point. The sending MTA is
now free to disconnect. But what if postfix gets a result it wants to
return a 400 or 500 from? And on a per-user basis? Very confusing
unless DISCARD or OK (but tagging internally) are the only options.
More information about the SGVLUG
mailing list