
People are probably familiar with teh current ability of exim to be configured to automagically see lists and handle them appropriately. There is also a wrapper (in scripts/auto) in MM 2.1 that attempts to do the same thing for postfix (BTW it will need updating for the additional aliases now used).
MM 2.1 uses some additional list entry points. This means that for an alias based approach to injecting mail there are now more aliases, and worse they aren't regular. Here's the alias set for a list with basename x (I have truncated the path on wrapper to make it fit without wrapping):-
x |wrapper post x x-admin |wrapper mailowner x x-request |wrapper mailcmd x x-join |wrapper join x x-leave |wrapper leave x x-bounces |wrapper bounces x x-owner |wrapper mailowner x
Additionally if VERP is being used, the bounces alias should also be matching stuff like x-bounces+aperson=dom.ain@mailhost.dom
Exim (and I guess other mailers - I'm going to talk on what I know and then let other folks talk on the other MTAs), can handle stuff based on regular expressions, so given a list x (matched by some magic - current config does it by checking if the file /home/mailman/lists/x/config.db exists) its dead easy to match an address suffix (I think the postfix folks call this an extension ) -(admin|request|join|leave|bounces|owner)
However, since the argument to wrapper varies with the extension I then need an additional lookup to convert that extention to the wrapper command.
So, for exim, life would be much easier if I could handle these (excluding the post command) by having
(.+)-(admin|request|join|leave|bounces|owner) map to |wrapper $2 $1
[$1 & $2 are the regexp matches from the expression above]
Barry - any chance of regularising the naming of the entry points, or adding aliases for admin, request and owner?? I would guess this approach would work for several different mailers.
BTW VERP could be handled by changing the intitial regexp to ([a-z0-9_-]*)-(admin|request|join|leave|bounces|owner)(\+.*)
An alternative approach might be that all addresses that are caught by the MTA list matching stuff are passed direct into the Mailman address handler, so you just invoked wrapper mailman-address-handler <address>
and let the python do the magic from there on.
Nigel.
If it was then possible to