D. J. Bernstein
Internet mail

Mail-Followup-To and Mail-Reply-To

So you've written a mail program. It supports two built-in response functions: one called ``reply to author'' or ``reply to sender'' or ``personal reply,'' and one called ``follow up'' or ``reply to all'' or ``reply to sender and recipients'' or ``wide reply'' or ``group reply.''

I suggest that you support the Mail-Followup-To header field. If a message contains this field, your follow-up function will use the contents of the field as the new message's default recipient list. In the absence of this field, use Reply-To (defaulting to From), together with To and Cc, just as you do now.

For symmetry, I suggest that you also support the Mail-Reply-To header field. If a message contains this field, your reply-to-author function will use the contents of the field as the new message's default recipient list. In the absence of this field, use Reply-To (defaulting to From), just as you do now.

Why is the Mail-Followup-To field useful?

Have you ever followed up to a message sent to a mailing list? Your message is sent to the original author as well as to the mailing list. That usually means the author receives two copies.

Even worse, his address will be in the new To line. It will be copied into subsequent followups, so he will receive two copies of future messages. He won't be able to escape the discussion even if he unsubscribes! After a long chain of followups there can be dozens of extra addresses. Archive space is wasted. The To line becomes unreadable. Some software breaks.

Your follow-up function probably eliminates duplicate addresses. But it can't detect the duplicate here. Perhaps the original author isn't on the mailing list, and should receive a copy.

If you support the Mail-Followup-To field, you're giving the original author a way to handle this situation. If he's on the mailing list, he'll set up a Mail-Followup-To field showing just the list, without his address.

Mail-Followup-To also lets people redirect discussions away from inappropriate mailing lists.

How should my MUA set up Mail-Followup-To in new messages?

Mail-Followup-To is normally the same as Reply-To (defaulting to From), together with To and Cc. You can omit it if you're using the default.

If To or Cc includes a mailing list that the user is subscribed to, create the Mail-Followup-To field from To and Cc alone. You need to let the user tell you which mailing lists he's subscribed to.

You may want to warn the user when he views a message where he's not included in Mail-Followup-To. This usually indicates that the user has subscribed to a mailing list shown in Mail-Followup-To, but hasn't told you about that mailing list. Or it may indicate that someone is redirecting the discussion.

How should I let the user edit Mail-Followup-To?

Add Mail-Followup-To after the user has finished editing the message; but don't add it if the user typed his own Mail-Followup-To.

(Figuring out Mail-Followup-To beforehand, and then supplying it for the user to edit, doesn't work well. When the user modifies To and Cc, he almost always wants Mail-Followup-To to be changed the same way.)

Why is the Mail-Reply-To field useful?

RFC 822 did not recognize reply-to-author and follow-up as separate features.

Most existing mailers use Reply-To, defaulting to From, for reply-to-author.

Unfortunately, some mailing lists set up Reply-To to point back to the mailing list. This is called reply-to munging. It effectively destroys the previous function of reply-to-author. See the Reply-To Munging Harmful FAQ for further discussion. (Ironically, the primary excuse for reply-to munging is that follow-up creates duplicates. See the Reply-To Munging Harmful Forum. Widespread support for the Mail-Followup-To field will eliminate this motivation.)

Mail-Reply-To is simply Reply-To without the ambiguity.

How does Mail-Reply-To interact with followups?

Mail-Reply-To overrides From for all responses. To summarize: Mail-Followup-To/(To+Cc+(Mail-Reply-To/Reply-To/From)) for follow-up, Mail-Reply-To/Reply-To/From for reply-to-author.

Should my mailing list manager set up Mail-Followup-To?

No. This would prevent non-subscribers from receiving copies of messages. It would fragment cross-posted discussions, sending some followups to your list alone while other followups are sent to both lists. You should leave Mail-Followup-To control in the hands of the original author.

Given duplicate message suppression, is Mail-Followup-To useful?

Your mailer may support duplicate suppression: throwing away incoming messages that match messages already received. (Note that it's insecure to simply check Message-ID.)

Duplicate suppression is half of a solution to follow-up duplication. It certainly takes away some of the annoyance. Unfortunately, it still leaves the extra address in the To line, causing many of the serious problems described above.

Mail-Followup-To is a complete solution.

Which programs use Mail-Followup-To?

News: The following list is obsolete. Daniel Faber has collected a newer list of Mail-Followup-To implementations at http://www.leptonite.org/mft/software.html.

qmail 1.02 and above automatically create Mail-Followup-To for messages sent to mailing lists. This works with any UNIX MUA; the user simply has to put a list of mailing lists into $QMAILMFTFILE.

Mutt 0.89 and above automatically create Mail-Followup-To for messages sent to mailing lists. They also understand Mail-Reply-To and Mail-Followup-To in incoming messages.

nmh 0.24 and above understand Mail-Reply-To and Mail-Followup-To in incoming messages.

Shuriken 2.0 and above understand Mail-Reply-To and Mail-Followup-To in incoming messages.

Gnus/5.090001 (Oort Gnus v0.01) and above understand Mail-Reply-To and Mail-Followup-To in incoming messages. Oort Gnus 0.04 and above support Mail-Followup-To in outgoing messages.

Kmail (not sure which version) understands Mail-Followup-To in incoming messages.

SquirrelMail version 1.4.5 and above understand Mail-Followup-To in incoming messages.

Please let me know about any new implementations.