[Mailman-Developers] Splitting -owner and -admin handling

Barry A. Warsaw barry@digicool.com
Fri, 22 Jun 2001 12:59:46 -0400

Mail destined for the -owner and -admin addresses for a list are
handled differently because -admin mail flows through the bounce
detector, and only if that fails is it forwarded on to the list
owners.  Mail for -owner goes directly to the list owners.

For historical reasons, Mailman conflates these two addresses by
having the same script (mailowner) deal with both.  In MM2.0.5, I
parsed the incoming message to see if it was destined for -admin or
-owner, and I added an appropriate bit message metadata before queuing
the message.

In MM2.1, I don't parse the message in mailowner.  This has the
advantage of reducing the amount of time the MTA program has to
consume, which I think is a good thing.  The problem is that the
determination of -owner vs. -admin doesn't happen until the qrunner
processes the message.  If I want to split bounce processing into a
separate queue, the best place to do this is as early as possible,
i.e. in the MTA program script.

There are two options:

1) Parse the message in mailowner, or at the very least, look for the
   To: field to see if it was destined for -owner or -admin, and then
   put the message in the proper queue.  We can mitigate the parsing
   costs by storing the message as a pickle instead of plain text, so
   the qrunner slurping messages out of the queue doesn't need to
   reparse it.  Pros: backwards compatibility with existing alias
   files.  Cons: mailowner has to do more work, has a higher
   opportunity for uncaught exceptions (exposed as MTA bounces), and
   can be fooled by Bcc's.

2) Add a new script, maybe called `mailadmin' which gets associated
   only with -admin messages.  The mailowner script would thus only
   accept messages for -owner.  Pros: keeps things simple, and splits
   bounce processing into a separate queue early on, with minimal
   chance of problems.  Cons: breaks backwards compatibility with
   existing alias files, since they'd have to be changed to point the
   -admin addresses at mailadmin instead of what they currently point
   to (mailowner).  Mitigate this with the auto-alias-file
   regeneration scripts already in Mailman (i.e. bin/genaliases).

Thoughts?  Preferences?  Other suggestions?