Don Marti

Sun 17 Apr 2005 08:33:52 PM PDT

Can procmail solve the biggest mailing list flame war of all time?

If you're on a mailing list you know the argument. "This list should set Reply-To to the list address" "No it shouldn't" "Yes it should" "No it shouldn't and I've got the Reply-To Munging Considered Harmful link right here".

Personally, I prefer when the list doesn't change Reply-To, since if I run across an interesting free software developer on a mailing list and want to ask him or her to write something for LJ, I can do a "Reply", and if I want to follow up on the list I can do a "List Reply".

But it's easy to understand why some people can be horribly wrong, and why this argument can drag on even longer than classics such as "Hitler was a vegetarian".

Adam Langley, on the p2p-hackers mailing list, posted an answer. if you want Reply-To set to the list, and the listmaster of the righteous-folk list won't do it, put this in .procmailrc:

* List-Id: Righteous folk.*
| formail -i "Reply-To:" >> $MAILDIR/righteous-folk

If you don't want Reply-To set, and the listmaster of the wankers list sets it anyway,

* List-Id: Wankers who munge.*
| formail -R "Reply-To" "X-Reply-To" >> $MAILDIR/wankers

(I have modified these recipes slightly to use lists instead of real lists. Substitute yours, and test.)

Randal Schwartz, author of much required reading for Perl hackers, posted a reply to the Portland Linux Unix Group mailing list:

But this breaks any posting made to the list where the originator has set reply-to specifically, including "reply-to: $the_list_in_question" so that they don't get individual replies, or "reply-to:" if they are borrowing someone else's hookup. So again, setting reply-to cannot be fixed by recipient compensation, while *not* setting reply-to can always be overcome by recipients at will.

The other procmail recipe, to set Reply-To to the list if you want it that way, works fine. Both recipes courtesy Adam Langley on the p2p-hackers mailing list.

Here's another "add reply-to" recipe from Mark C. Langston on the SVLUG list -- it goes the wrong way (munging Reply-To on non-munging lists) so I haven't tried it.

# Get list reply address
: 0
* ^list-(post|ID):
    REPLYTO=`formail -x list-post: | sed 's/mailto://'`

    :0 fw
    | formail -i "Reply-To: $REPLYTO"