Current state
Currently, the “Show Classic Emails” setting offers the following three options:
Show Classic Email
(*) No, chats only
( ) For accepted contacts only
( ) All
If I understand correctly, these three options have the following meaning:
“No, chats only” – Show messages that are (1) correctly signed and encrypted and (2) contain either (2a) a Chat-Version header in the encrypted payload or (2b) a reference to a message that contains a Chat-Version header in the encrypted payload. I do not know if condition 2b will be applied recursively or if it only works for the first level of indirection.
“For accepted contacts only” – Messages that are (1) correctly signed and encrypted and that are (2) signed by a key-contact that has previously sent a message that contains a Chat-Version header. (I could be wrong about condition 2 here. To be honest, it is not entirely clear to me what “accepted contact” means in this context.)
“All” – Only exclude messages with “Content-Type: multipart/report”.
My Proposal
I find the current behavior somewhat hard to grasp. As you can probably tell from my attempt to define the meaning of these three options above, I am still unsure about some of the edge cases – even after getting further input from the developers (see Upgrading a 1:1 conversation to e2ee using a second email client does not work as expected · Issue #7945 · chatmail/core · GitHub ). I would suspect that other users might have similar difficulties in interpreting the three options correctly.
I would therefore propose to simplify the menu as follows:
Show Classic Email
(*) No, only show end-to-end encrypted messages
( ) Yes, also show classic email messages
In my opinion, these two options would be a lot easier to understand. They would also map nicely to the UI. I.e. “end-to-end encrypted messages” = key-contact-chat = colorful icon; “classic email messages” = address-contact-chat = gray envelope icon.