Sun, 01 Jul 2007

Reply-To: for Mailing Lists

Many mailing lists I'm on (particularly ones inhabited by sizable portions of geeks) have periodic "discussions" about the behavior of the Reply-To header on list email. The discussions usually follow fairly predictable paths. "Reply-To" Munging Considered Harmful is quoted. Proponents respond with Reply-To Munging Considered Useful.

My opinion is threefold:

First, not touching the header is the purest solution. For all the reasons in "Reply-To Munging Considered Harmful", mailing lists shouldn't touch it, in an ideal world, at least.

Second, "Reply-To Munging Considered Useful" gets one things right: it adds functionality. Even today, most mail clients can either "reply" or "reply-to-all". If "reply" goes to the message originator, then they're left with "reply-to-all" as the easiest way to send a message to the list. (And sending mail to the list should, in most cases, be easy.) Some MUAs, such at mutt and KMail [please email me if you know of others] add a "list-reply" function. If most common MUAs had such a feature, I would find it much easier to advocate against munging. But they don't, and it's rather elitist to insist that people switch MUAs just for your mailing list. So, in today's world and for an average list, I tend to vote for munging the header. (Though I really like the (void) mailing list, which provides twin lists, one with munging, the other without. All posts do, of course, appear on both lists.)

(Note that "reply-to-all" is not the same as "list-reply". "list-reply" sends one message--it goes to the list (unless the original email has a Mail-Followup-To: header, but that's another post). "reply-to-all" sends one message to the list, plus one message for each sender and recipient of the original email. That adds up quickly for involved discussion threads, and all of those extra messages are wasts of both time (human and computer) and bandwidth.)

Third, I don't have to care either way, because I use mutt and procmail. (And, actually, the procmail part is optional.) In my .procmailrc is the following recipe:

:0 fhw
| sed -e "s/^\\(Subject:.*\\)\\[$MATCH\\]\\( \\)*/\\1/I" \
      -e "/^Reply-To:.*$MATCH@/ d" \
      -e "s/^Old-Reply-To:/Reply-To:/"

$MATCH is already set to the name of the mailing list, which is usually also the local portion of its email address. (Note that this loses information if the list doesn't munge the header and someone has their own Reply-To header that happens to have the same local part as the mailing list. In my experience, this is highly unlikely.)

My mutt config contains the following directives:

set ignore_list_reply_to=yes
set reply_to=yes
subscribe <list addresses>

so if a Reply-To header is set to an email address that mutt knows to be a mailing list, it ignores that header. (And since those are ignored, I set "reply_to" to yes, so it always uses acceptable headers; by default it asks whether I want to use them.) Thus, the "r" key always replies to the person who sent the message, the "g" key always replies to the sender and all recipients of the message, and the "L" key sends the reply to the mailing list the email was from (and any other addresses in the Mail-Followup-To header).

Phil! Gold