[Mailman-Developers] 2.1b1 Moderation and From: vs. Sender:

Harald Koch chk@pobox.com
Tue, 26 Mar 2002 10:39:14 -0500


I have a small problem with a moderated list as part of my upgrades from
2.0.8 to 2.1b1.

This is a "joke of the day" style list. I'm supposed to be the only one
who can submit messages to the list; all of the members are moderated
(except me).  Outgoing messages are stored in a queue, and one is sent
automatically by cron once per day.

With 2.0.8, I was processing a message by adding a Sender: tag with my
address; my address was listed in the 'posters' variable. With
"USE_ENVELOPE_SENDER = 1" in my mm_cfg.py, this worked.

The list upgrade process handled the 'posters' variable correctly; my
list address was marked *unmoderated*, and the other addresses were
copied into the new 'accept_these_nonmembers' field. (Good attention to
detail, there, btw; kudos!)

However, my 'trick' of adding a Sender: field doesn't work anymore, and
I get a confusing log/hold message that says "humour post from
chk@cfrq.net held: Post by a moderated member".  'chk@cfrq.net' is not
moderated.

It turns out that, in order to find the moderation flag of the user that
send a message, Handlers/Moderate.py calls msg.get_senders, which
returns a *list* of senders with the Sender: last; Moderate.py only
looks at the first return value, which is the From: header. The address
in the From: field *is* moderated, and so the message is rejected.
Later, however, Handlers/Hold.py routine hold_for_approval calls the old
msg.get_sender (singular vs.  plural), which returns the Sender: field
if "USE_ENVELOPE_SENDER = 1" is set, which is why I get the confusing
log message.

So, two things:

1) The message rejection is confusing.

2) What's the right way to do this under 2.1?

Thanks,

-- 
Harald Koch     <chk@pobox.com>

"It takes a child to raze a village."
		-Michael T. Fry