Ricardo Kleemann wrote, on 08. feb 2007 21:35:
Let me piggy-back on this question.
I'm using courier as my MTA. Typically the dspam installation would
replace courier's DEFAULTDELIVERY from maildrop to dspam, and then have
dspam call maildrop in order to make the actual deliveries.
Is it possible to use dspam with courier such that dspam is not the
default delivery agent?
My experience with dspam is confined to Postfix. Postfix is designed
such that, whilst other MTA's consist of a single monolithic unit that
does duty for managing smtp, smtpd, queues, user management, header
rewriting, transport/routing, filtering and mail delivery, Postfix
consists of a number of separate modules that do these things. It's
possible to run multiple smtpd listener daemons where messages can go
from one smtpd listener to another on another port, or to a proxy
between two listeners, such as dspam or amavisd-new. Think of it as
something like a series of hammocks hung up between trees. dspam in this
setup (as we use it) is not a delivery agent, it runs as a daemon and
accepts mail using lmtp from an smtpd listener and after it's done its
thing, it hands the message using smtp on to the next/last smtpd
listener. In our case, after any rewriting, filtering and queue
management by other modules, a pipe module hands it off to Courier
maildrop as LDA. The advantages are, both that the system consists of a
single queue hierarchy and a single MTA instance, and also that it's
possible to run the whole string of "hammocks" as a pre-queue filter. So
that the client doesn't get a data 2xx/4xx/5xx from the first smtpd
listener until the message has gone through everything in between
(including all virus and spam filtering).
I'd guess that to do this with Courier MTA one'd have to run a number of
discrete instances, each with its own queue and services hierarchy - as
one does with Exim or Sendmail. So yes, it should be possible to do what
you want with Courier, but you'd have to run more than one instance (can
be done on the same machine).
I thought about running dspam off of maildrop, but to do that it would
have to be with the --stdout parameter. If I use --stdout, does dspam
still keep statistics? I guess also that dspam will not use quarantine
if run with --stdout.
We used to run dspam out of maildrop before we started using it as a
daemon. I don't have a copy of our old maildroprc, I'm afraid, but I'm
pretty sure we never used --stdout, simply used it as a filter that
passed back to maildrop for delivery. I've never used dspam's own
quarantine or CGI interface - all messages are routed immediately to
each user's IMAP INBOX or a spam quarantine subfolder on the basis of
the dspam header each message has.
A related question, if a user opts out of dspam, does dspam still call
maildrop to deliver the message?
We don't have an opt in or opt out choice, since we run a shared group
for dspam, but I've experimented with a per user opt in/out system with
a MySQL table for this and that worked fine. It's dspam itself that
reads the table and it certainly respects it.
Best,
--Tonni
--
Tony Earnshaw
Email: tonni at hetnet dot nl