<<< Date Index >>>     <<< Thread Index >>>

reply / group reply behavior broken WRT $reply_to and $reply_self



There seems to be a problem with how mutt handles $reply_to and
$reply_self.  In particular, it seems to behave badly replying to
some combinations of e-mails which are sent by oneself, and contain a
Reply-to header.

This is a bit complicated, as the interactions of these two variables
forms a 3-dimensional decision matrix.  I apologize for the complexity
of this bug report, but there's no way around it; it's a complex
issue.

The essential problem is that when $reply_to is set (and there is a
Reply-to header), but $reply_self is unset, Mutt does the wrong thing.
It ignores the Reply-to header completely, whether the user is
REPLYing or GROUPREPLYing.  This apparently is true of all versions of
Mutt including and prior to the current CVS.

Some of this behavior might be arguable, so I will lay out my
assumptions, as follows:

1. If $reply_to is SET, mutt should ALWAYS HONOR a reply_to header.

  a. if the function is REPLY, mutt should set the TO header to the
     reply-to header of the original message.

  b. if the function is GROUPREPLY, mutt should set the TO header to
     the reply-to header of the original message, and set the CC list
     to all other recipients on the message.  

     i.  if $reply_self is SET, include the sender

     ii. if $reply_self is UNSET, do not include the sender

2. If $reply_to is UNSET, mutt should ALWAYS IGNORE the reply-to
   header (it should look only at $reply_self to decide what to do). 

  a. If $reply_self is SET:

     i.  if the function is REPLY, mutt should set the TO header to the
         FROM header of the original message

     ii. if the function is GROUPREPLY, mutt should set the TO header
         to the FROM header of the original message, and CC header is
         set to all other recipients of original message
         
  b. if $reply_self is UNSET:

    i.  if function is reply, set TO header to all recipients

    ii. if function is GROUPREPLY, set TO header to all recipients

There is also the question of whether or not the Reply-to header is
set... but I leave that out of consideration here because in that case
RT becomes irrelevant, and the behavior matrix becomes the subset of
the above behaviors where $reply_to is UNSET.  Thus, getting the above
cases right SHOULD guarantee getting the other cases right, unless the
code is written badly (which is certainly possible, but I'm being
optomistic :).

To hopefully make this clear, here's a table.  The last two columns
are only filled in if Mutt does the wrong thing.  The key to the table
is below (in case it is not visible in your terminal when you page
down).


CMD     RS      RT      header  ex_TO   ex_CC   act_TO  act_CC
R       x       -       x       S       -       
R       -       x       x       T       -       R       -
R       x       x       x       T       -
R       -       -       x       R       -
G       x       -       x       S       R       
G       -       x       x       T       R       R       -
G       x       x       x       T       R
G       -       -       x       R       -


Key
-=-=-

CMD = reply command; R = REPLY, G = GROUPREPLY
RS = $reply_self set; x = set, - = unset
RT = $reply_to set; x = set, - = unset
header = Reply_to header is set
ex_TO = expected TO header
ex_CC = expected CC header
act_TO = actual TO header
act_CC = actual CC header

For the header columns: 
S = sender (the person who wrote the original mail, who happens to be
    the person replying also)
R = the other recipients of the original message
T = the addresses listed in the Reply-To header of the original mail



-- 
Derek D. Martin    http://www.pizzashack.org/   GPG Key ID: 0xDFBEAD02
-=-=-=-=-
This message is posted from an invalid address.  Replying to it will result in
undeliverable mail.  Sorry for the inconvenience.  Thank the spammers.

Attachment: pgpebN5UgH30N.pgp
Description: PGP signature