Re: [Mailman-Developers] Splitting -owner and -admin handling
I like 2) better, as anything that helps bounce processing be more efficient is a big win for low-end machines, especially if it can avoid the relatively-huge Python startup time.
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:
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.
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?
-Barry
Mailman-Developers mailing list Mailman-Developers@python.org http://mail.python.org/mailman/listinfo/mailman-developers
participants (1)
-
Dan Mick