MBOX-Line: From mrc+imap at panda.com  Fri Oct 22 17:54:16 2010
To: imap-protocol@u.washington.edu
From: Mark Crispin <mrc+imap@panda.com>
Date: Fri Jun  8 12:34:45 2018
Subject: [Imap-protocol] Session flags.
In-Reply-To: <4CC206A3.8010909@aol.com>
References: <4CC1E456.5050208@aol.com>
	<alpine.OSX.2.00.1010221233060.69345@hsinghsing.panda.com>
	<4CC1EFDD.3000606@aol.com>
	<alpine.OSX.2.00.1010221323490.69345@hsinghsing.panda.com>
	<4CC206A3.8010909@aol.com>
Message-ID: <alpine.OSX.2.00.1010221636200.70834@hsinghsing.panda.com>

On Fri, 22 Oct 2010, John Snow wrote:
> But what about my question?

Your question has been answered many times, most recently just now.

Read-only mailboxes that only have a single writeable status, whether
newsgroups or the bboards of the 1980s, were in use and supported by IMAP
from inception.  The user experience issue came up at once; as did the
fact that - even way back then - there were client implementations that
were not under my control.

Specifically, these user experience facts came up very early, nearly 25
years ago:
  [1] No value is served by having STORE be a no-op.
  [2] Negative value is served by having STORE return a NO.

Without session flags, the only way for clients to present the desired
user experience is to implement these entirely in the client.  Once client
display is disconnected from what the server says, the server loses the
ability to have external flag changes update on the client; the client has
no clear guidance on whether or not to believe anything the server says.

If you don't like session flags, then don't use session flags in your
client.  The server clearly indicates, via PERMANENTFLAGS, which flags are
session flags; the flags that are in FLAGS but not PERMANENTFLAGS are
session flags.  Do not attempt to STORE \* or any flag other than what are
in PERMANENTFLAGS.  Similarly, ignore any returned flag in FETCH that is
not in PERMANENTFLAGS.  This is not a particularly challenging programming
task.

Similarly, any competent server programmer will have no trouble
implementing session flags sufficiently to comply with the protocol.

-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.

