On Wed, Apr 20, 2005 at 10:32:12AM +0100, Chris Wakelin wrote:
There are two relevant flags associated with a message in IMAP, "SEEN" and "RECENT". "New" messages might be considered unread ones (don't have the "SEEN" flag set) or "recent" ones.
The client gets to modify "SEEN", which it typically does when it reads the message. The server is the only thing that can modify "RECENT", which it does when it has notified a client that has "SELECT"-ed (i.e. opened) the folder about new messages.
I assume "offlineimap" is behaving just like a normal client and "SELECT"-ing the folder in order to download messages. If it doesn't want to change the "RECENT" status, then it should use "EXAMINE" (opens mailbox readonly) instead of "SELECT". Likewise, it shouldn't set the "SEEN" flag unless it wants to signal that the message has been read.
Thanks for your clear explanation. I've forwarded it to the offlineimap developer.
I still think that modifying "RECENT" when the client has "SELECT"-ed the folder is a poor design choice (by the RFC, I guess, not you). Consider the case where the client SELECTs a folder then immediately crashes. When it runs again, none of the messages will be RECENT, even though they were never visible (in any way) to the user. In other words, this design is not end-to-end and makes RECENT effectively meaningless.
Andrew