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

Reply via email to