[Mailman-Developers] needs explanation of the interaction between"site list" and bounces

Mark Sapiro mark at msapiro.net
Sat Jun 21 22:10:53 CEST 2008

Fil wrote:
>I'm looking for a description of the interactions between bounce
>processing and the site list (mailman at ...) 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 at ..."

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

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 at ... (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 at ... (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 at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

More information about the Mailman-Developers mailing list