DCC - Postfix MTA mail hub implementation question

Vernon Schryver vjs@calcite.rhyolite.com
Fri Aug 23 14:29:45 UTC 2002

> From: Matt Armstrong <matt@lickey.com>

> ...
> Yes.  It'd be done with a postfix content filter. Basically postfix can 
> be set up to pipe all mail it sees to a command or SMTP server running 
> on a different port. ...

The worrisome cost of such designs is that every mail message requires
at least one fork() and exec() for dccproc and for all I know, more
for however postfix gets the result from dccproc.

What sort of interface could postfix, smtpd, qmail, and the rest use
to talk to a permanent daemon?   Could they use a permanent daemon?

The input to such a daemon needs to include

  - envelope information equivalent to `dccproc -R -a ip-addr -f from`
  - the SMTP body including headers

For each mail message, the output needs to included 

  - the modified body (i.e. X-DCC header added)
  - whether the `dccproc -c` thresholds have been reached

Possible mechanisms include

  - a transient TCP or UNIX domain socket for message
       (i.e. connect()/write()/close())

  - a pair of interprocess communication streams such as a socket or a pipe
       with the SMTP bodies prefixed by the envelope on input to the
       daemon and the result on output, wand the bodies delimited
       probably by a leading byte count.  (RFC 821 escaping sounds like
       more trouble for all concerned.)

Vernon Schryver    vjs@rhyolite.com

More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.