FYI, see below for a message I just sent to the ietf-822 ML seeking feedback on how the
"reply features" of a MUA shall look like.
If you have an opinion on this topic or have a preference on how replying shall
work in Trojitá, please comment. Using the trojita ML is fine if you don't want
to particiapte on ietf-822.
With kind regards,
Jan
On Friday, 4 January 2013 17:44:33 CEST, Jan Kundrát wrote:
Hi,
I'm struggling to come up with the best approach for designing
the "reply" feature in Trojitá. As far as I know, there's no
single "best practices" document to follow (and many "XYZ
considered harmful" ones and an interesting one about how
Evolution works [1]). Here's what I'd like to do:
- Always offer multiple ways to reply. These actions will be
represneted by an expandable button (i.e. a button with an arrow
on the right which performs the "reasonable thing" by default
but allows you to click the arrow to see the other actions).
- The rules for picking up the recipients will be the following:
1) If there's a List-Post header and its value is not set to
"NO" (or an equivalent) and there's at least one mailto: URL in
there, the "Reply to List" is enabled and listed as the default
option. When user selects this action, all of the Sender, From,
Reply-To, Cc and Bcc are ignored.
2) "Reply All" option is always available and will generate a
list of recipients using the following rules:
- All addresses in the message's From and Reply-To will be
used in the "To" field
- All addresses in the message's To will be in the Cc
- All addresses in the message's Cc will be in the Cc
- All addresses in the message's Bcc will be in the Bcc
After this is complete, a list will be "sanitized":
- Duplicate enteries in each To/Cc/Bcc are be removed
- Addresses already in To are removed from Cc and Bcc
- Addresses already in Cc are removed from Bcc
The List-Post and the Sender headers are ignored when doing the
Reply-All thing.
The "Reply All" is the second candidate for a default (i.e. the
default when "Reply List" is not available).
3) "Private Reply" option is always available and produces a
message with the following recipient(s) in the "To" field:
- If the message contains a Reply-To, each of those which are
at the same time *not* listed in any List-Post addresses are
used. If the resulting set is non-empty, the From header is
ignored. This means that any address in the Reply-To which is
also listed in the List-Post is silenty ignored and anything not
in the List-Post is used.
- The Sender header is always ignored.
- If the recipients list is empty at this point, everything
from the From field is used.
- If the resulting set contains more than one address, the
duplicates are eliminated.
I am very interested in hearing what you think about this
scheme. I realize that this is a topic with a huge potential for
a good flame, and I suspect there are people who have very
different opinions as to what is best. Despite that, I'll be
happy to hear what issues are lurking in the algorithm I
describe and what drawbacks I'm eniterly missing. Please also
feel free to point me to any existing discussion as long as it's
different from [1], [2] and [3] which I've read already.
When the discussion settles, I plan to impleemnt the outcome in
Trojitá (along with a test case with plenty of examples matching
real-world scenarios). Thanks for your help!
With kind regards,
Jan
[1] http://david.woodhou.se/reply-to-list.html
[2] http://www.unicom.com/pw/reply-to-harmful.html
[3] http://woozle.org/~neale/papers/reply-to-still-harmful.html
--
Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/