Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change reply behavior #3738

Open
cketti opened this issue Nov 21, 2018 · 22 comments
Open

Change reply behavior #3738

cketti opened this issue Nov 21, 2018 · 22 comments
Labels
type: enhancement New features or improvements to existing features.

Comments

@cketti
Copy link
Member

cketti commented Nov 21, 2018

Sometimes users seem to be surprised about the way K-9 Mail selects recipients when the "reply" action is used. I'm proposing to add more options with names that hopefully make it clearer which addresses will be selected as recipients.

Proposed behavior described via examples:

From: sender@example.org
To: you@example.org

Displayed actions (in order):


From: sender@example.org
To: unknown@example.org

Displayed actions (in order):


From: sender@example.org
To: you@example.org
Reply-To: other@example.org

Displayed actions (in order):


From: sender@example.org
To: unknown@example.org
Reply-To: other@example.org

Displayed actions (in order):


From: sender@example.org
To: you@example.org
List-Post: <mailto:list@example.org>

Displayed actions (in order):


From: sender@example.org
To: you@example.org
Reply-To: list@example.org
List-Post: <mailto:list@example.org>

Displayed actions (in order):


From: sender@example.org
To: you@example.org
Reply-To: other@example.org
List-Post: <mailto:list@example.org>

Displayed actions (in order):


From: sender@example.org
To: list@example.org
Reply-To: list@example.org
List-Post: <mailto:list@example.org>

Displayed actions (in order):


From: sender@example.org
To: list@example.org
Reply-To: other@example.org
List-Post: <mailto:list@example.org>

Displayed actions (in order):


From: sender@example.org
To: unknown@example.org
Reply-To: list@example.org
List-Post: <mailto:list@example.org>

Displayed actions (in order):


From: sender@example.org
To: unknown@example.org
Reply-To: other@example.org
List-Post: <mailto:list@example.org>

Displayed actions (in order):


Feedback is very welcome.


Update 1: Incorporated feedback from #3738 (comment)
Update 2: See #3738 (comment)

@Valodim
Copy link
Contributor

Valodim commented Nov 22, 2018

Thanks for compiling this list, very helpful 👍

I think it's customary for list replies to reply to both list and sender. It's rarely harmful at least, and removing recipients from the list is easier than adding more. That way we can get rid of an entire option, since "reply to list" and "reply to all" become the same for typical list messages.

Any thoughts on dropping the general "Reply" in favor of "Reply to sender" whenever it's ambiguous? While it's consistent to say "reply means reply to sender", at least for me that is rarely the "do what I mean" option I expect from a general "Reply" button.

@cketti
Copy link
Member Author

cketti commented Nov 22, 2018

I updated the examples based on @Valodim's feedback.

One thing I don't know how I feel about is the fact that this more or less ignores Reply-To when a List-Post header is present and it's different from the Reply-To address. Should we add a "reply to suggested" option? This could be useful if someone sends a message to lots of mailing lists but wants to direct replies to a particular list.

@wiktor-k
Copy link
Contributor

One thing I don't know how I feel about is the fact that this more or less ignores Reply-To when a List-Post header is present and it's different from the Reply-To address.

There is one case that I think may be relevant here.

Some mailing lists add a Reply-To header and modify From (probably due to the fact that modifying the e-mail could trigger DMARC failure, and they add some ML boilerplate to the footer).

An example (anonymized):

Message-ID: <b0f23d707cb1ed34d275c2cd3b1019bf5ca94ec8.camel@googlemail.com>
List-Post: <mailto:gnupg-users@gnupg.org>
From: X via Gnupg-users <gnupg-users@gnupg.org>
Reply-To: X <x@googlemail.com>
...

@Valodim
Copy link
Contributor

Valodim commented Nov 23, 2018

What we need to work out is what "reply to sender" means for a list, and how it is affected by different constellations of List-Post, Reply-To and From. I wonder about this constellation:

From: sender@example.org
To: you@example.org
Reply-To: other@example.org

Shouldn't "reply to sender" here reply to other@example.org? That's the purpose as written of Reply-To header at least:

If the "Reply-To" field exists, then the reply  should
           go to the addresses indicated in that field and not to
           the address(es) indicated in the "From" field.

This becomes more ambiguous with mailing lists, which might abuse "Reply-To" as "List-Post".

From: sender@example.org
To: unknown@example.org
Reply-To: list@example.org
List-Post: <mailto:list@example.org>

In this case, "reply to sender" should obviously to go sender@example.org, however if Reply-To and List-Post weren't the same I would say "reply to sender" should go to what Reply-To says. This especially covers the case of DMARC-ified sender addresses where the mailing list takes responsibility for the message and puts itself as From.

@cketti
Copy link
Member Author

cketti commented Nov 23, 2018

My previous proposal used the Reply-To address for "Reply". But if we name the action "Reply to sender" I assume non-technical users would expect that the From address is used.

Maybe we shouldn't try to be smart with replies and just give Reply-To its own action. Then also display the Reply-To address in the message view header and let users figure out that there are more reply options when a Reply-To header is present.
The case where Reply-To and List-Post both contain the same address can be easily detected and we treat it like the case where Reply-To is not present.

@Valodim
Copy link
Contributor

Valodim commented Nov 23, 2018

I assume non-technical users would expect that the From address is used.

I'm not so sure about that. Non-technical users have no concept of a "from" header, they just want the message to go to the sender. This also aligns with the RFCs. Do you have data to the contrary?

@cketti
Copy link
Member Author

cketti commented Nov 23, 2018

We display the information from the From header as sender of the message. How can non-technical users not be surprised if that information is not used when they click "reply to sender"? And we don't display the Reply-To information at all. So, really, they have no chance to figure out what's going on.

"Reply to sender" would also be the wrong name if it's used like this (message received via list2, but sender wants discussion to happen on list1):

From: sender@example.org
To: list1@example.org, list2@example.org, list3@example.org
Reply-To: list1@example.org
List-Post: <mailto:list2@example.org>

@gdt
Copy link

gdt commented Nov 23, 2018

To me, the most important thing is that "Reply (implicitly being to the sender" and "Replay All (which could involve list-post)" must be separate and that when people execute the "reply to sender" action, the reply should not end up being posted anywhere. I think it's fine to show "reply" as "reply to sender" to help people who don't get that this is what reply has meant forever. I think it's also fine to make "reply-all" use list-post headers and send the message to the list only. Doing this right requires a combination of

  • k-9 uses only From and Reply-To, following RFCs, when doing "reply"
  • lists do not misuse reply-to
  • lists do not misuse From, by rewriting it to be the list

The second and third points are difficult, particularly given yahoo/DMARC. The reply-to header is only supposed to be added by the originator, and should only me an address of the originator. It is abuse for the sender to decide for replies to go anywhere else. It is also abuse for mailinglists to set it. It's also even more abusive for lists to change the From to an address that goes to the lists, (instead of a per-member alias that just goes to that member, or declining to accept members whose MTAs reject list mail).

So I think what's needed in MUAs in general, is some way to detect misused From and Reply-To, perhaps by matching up list-post or list-id and values that correspond to those, and in that case, make reply grayed out with a popup that the is misconfigured (or softer if you are feeling charitable about this, which obviously I'm not) and refuse to perform the action because it can't be done.

The key property is that no one should ever click "reply" and have their response be public.

@cketti
Copy link
Member Author

cketti commented Nov 26, 2018

Dealing with mailing lists that rewrite From headers or "abuse" of Reply-To seems like a topic for another GitHub issue. Please feel free to create one with suggestions.

Given the reality that Reply-To is used differently than originally intended, I don't think we should call the action "reply to sender" if the Reply-To address is used.

My revised proposal:

  • If Reply-To and List-Post are the same, ignore the Reply-To header for all following steps.
  • If present (and not ignored) use the Reply-To value for the "reply" action (don't call it "reply to sender", because it might not be).
  • Use List-Post value and the address that is used for "reply" for "reply to list".
  • Use all addresses for "reply to all", i.e. also the From address even when Reply-To is present. Because it's easier to remove unwanted addresses than to manually copy & paste one that is missing.
  • Display the Reply-To address when viewing the message. Hopefully this will help to understand why sometimes "reply" does unexpected things.

This can't guarantee that "reply" will never make the response public. But I currently don't see how that could be achieved.

@nomis
Copy link
Contributor

nomis commented Dec 9, 2018

I think it's customary for list replies to reply to both list and sender. It's rarely harmful at least, and removing recipients from the list is easier than adding more. That way we can get rid of an entire option, since "reply to list" and "reply to all" become the same for typical list messages.

Please don't do this, "reply to list" should be a separate option and only reply to the list. I'm fed up of people sending me duplicate messages to different folders by copying me in mailing list replies.

@cketti cketti added the type: enhancement New features or improvements to existing features. label Mar 8, 2019
@cketti cketti changed the title RFC: Reply behavior Change reply behavior Mar 8, 2019
@nelljerram
Copy link

Is this change going to actually happen soon? After an accidental and semi-embarrassing reply-to-list today - again - I've ended up here, and it's clear that many k9 users have been burned by this, not just me.

Could we at least have an option - soon - to ignore List-Post?

(In my view List-Post should have nothing to do with replying. It tells you how to write a new message to the list.)

@Geobert

This comment has been minimized.

@sfrost
Copy link

sfrost commented Jul 31, 2020

To get back to the discussion, there's absolutely mailing lists which very intentionally do (and I happen to be involved in running this one...):

From: PG Bug reporting form noreply@postgresql.org
To: pgsql-bugs@lists.postgresql.org
Cc: user@other.com
Reply-To: user@other.com, pgsql-bugs@lists.postgresql.org

Nearly every client out there correctly handles this (Thunderbird, by default, is broken but thankfully has an option to un-break it) and utilizes the Reply-To for replies, as one typically expects. I also agree with the comment above that List-Post header shouldn't be relevant for replies.

That k-9 mail users aren't having this 'just work' is rather annoying. Please fix.

@ilmaisin
Copy link

The current behaviour is outright reckless what it comes to user's privacy. I have no idea whether or not it is against GDPR or some otherer regulations, but it certainly is non-standard and unethical.

@ilmaisin
Copy link

Dealing with mailing lists that rewrite From headers or "abuse" of Reply-To seems like a topic for another GitHub issue. Please feel free to create one with suggestions.

Given the reality that Reply-To is used differently than originally intended, I don't think we should call the action "reply to sender" if the Reply-To address is used.

My revised proposal:

  • If Reply-To and List-Post are the same, ignore the Reply-To header for all following steps.
  • If present (and not ignored) use the Reply-To value for the "reply" action (don't call it "reply to sender", because it might not be).
  • Use List-Post value and the address that is used for "reply" for "reply to list".
  • Use all addresses for "reply to all", i.e. also the From address even when Reply-To is present. Because it's easier to remove unwanted addresses than to manually copy & paste one that is missing.
  • Display the Reply-To address when viewing the message. Hopefully this will help to understand why sometimes "reply" does unexpected things.

This can't guarantee that "reply" will never make the response public. But I currently don't see how that could be achieved.

If a mailing list "abuses" reply-to, that's their decision and possibly fault. I suggest to just follow the standards. The original author of the message might have set the "reply-to" address to the list theirself, and thus except all replies to go there.

@sfadschm
Copy link

sfadschm commented Aug 23, 2021

Thats a nice list and I think it would be important to tackle this soon (unfortunately, I have no experience with JAVA).
The RFC states that a simple reply action SHOULD prefere the from header as long as reply-to is not set. So in case we stick with a simple reply, I would think this is the way to go.

The options presented in the original post looks like a good alternative tough with the named reply options.

Regarding list replies, the current behavior clearly differs from all other mailing clients I know. This is not a bad thing in general, but definitely leads to the mistakes discussed before in this thread.

@RalfJung
Copy link

RalfJung commented Mar 22, 2023

I just hit some very surprising "reply" behavior in k9mail: I hit "reply" and strangely my reply went to the list. Specifically, the email has

X-Original-To: LIST@lists.inf.ethz.ch
Delivered-To: LIST@lists.inf.ethz.ch
From: <SENDER@inf.ethz.ch>
To: <ALIAS@lists.inf.ethz.ch>
List-Post: <mailto:LIST@lists.inf.ethz.ch>
(no reply-to)

When I hit "reply" in K9mail, the email goes to LIST@lists.inf.ethz.ch (and only there) -- which I would never expect, this should go to the sender only (so I just embarrassed myself by replying to the entire list).

In Thunderbird, for the very same mail, "reply" goes to SENDER@inf.ethz.ch as expected.

This is with K9 6.400.

IOW: many years later, users are still bitten by this strange k9mail decision to send replies to "list-post". Would be great to finally see this fixed.

@RalfJung
Copy link

Is there currently even a way to reply just to the author of an email that was received via a mailing list? The only option I found is to "reply to all" and then remove all recipients except for the author.

@ilmaisin
Copy link

@cketti As the current behaviour is causing trouble to many people, would a PR doing following be acceptable:

  • Restore the Reply functionality to standard
  • If List-Post is present, display a "Reply to List" option, similar to Thunderbird?

@a-name-not-taken
Copy link

I have probably an entire MIT graduating class who have thoughts on this.

I would modify the @ilmaisin comment as follows:

  • Restore the Reply functionality to standard
  • If List-Post is present, display a "Reply to List" option or just ignore it. Anybody on a list should already know how to post messages to it.

@xandro0777
Copy link

I believe in "complex" situations the reply button should always invoke a menu with explicit options relevant to the situation so that no user invokes some default action which he doesn't fully understand by accident.

Complex situation being for example If there is a cc, list-post, multiple recipients etc . I believe there is no single default behavior that will make everyone happy so make sure users don't miss the choice by accident.

Having some options in settings would be second best but might still burn some users. I take mutt as an example that I know well, you can redefine "reply" in many ways but ultimately what saves me most of the time is that everything is displayed explicitly.

@a-name-not-taken
Copy link

Is this fixed (finally) in V6.602, or is that just my imagination?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement New features or improvements to existing features.
Projects
None yet
Development

No branches or pull requests