Fil wrote:
I'm looking for a description of the interactions between bounce processing and the site list (mailman@...) under 2.1.11rc1. It seems to me that there is a case when the bounce processor doesn't recognize a bounce, sends it to ??? which in turn generates an error like "you are not allowed to post to the list mailman@..."
Here's the situation. Ordinarily, any unrecognized bounce may be forwarded to the list owner depending on the list's bounce_unrecognized_goes_to_list_owner setting. Nothing special here.
Where the site list comes in is not with unrecognized bounces per se. It is involved with what happens when any message to the list owner bounces.
Any message sent to the list-owner has an envelope sender set to the sitelist-bounces address, so if a message sent to a list-owner bounces, the bounce (assuming a conformant MTA is bouncing) goes to the mailman-bounces@... (or whatever the sitelist name is) address and is handled as a bounce for that list. If it is recognized, it is scored or discarded depending on whether or not the bounced address is a member of the site list.
Now it gets tricky. If the bounce returned to the site list is unrecognized and the sitelist is set to forward unrecognized bounces, the bounce is forwarded. Now that forward may bounce too, so it is sent with a special envelope from mailman-loop@... (or whatever the sitelist name is) so if it bounces, the bounce should be returned to the loop address and every installation should have an alias
# The ultimate loop stopper address mailman-loop: /usr/local/mailman/data/owner-bounces.mbox
to deliver these bounces to a mailbox.
There are certain other complications to avoid the loop that will result if a list owner sets the list-bounces address as the 'owner' address. This is avoided by looking for an X-BeenThere: header for the list in the headers of the 'bounce'. The theory is that no real bounce will have any X-BeenThere: header, so if this does, it came directly from the list to the list-bounces address. In this case, it isn't processed as a bounce, but is sent directly to the sitelist-owner with envelope fron sitelist-loop.
There is no case where an unrecognized bounce should go to the site list itself unless the sitelist is the owner of the sitelist or of the list that sent the bounced message.
There are several comments (and of course the code itself) at the beginning of BounceRunner._process() that give more detail.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan