Customers using the IMAP server I maintain have complained about flags not
sticking when they use the latest version of Outlook Express. I have
isolated the protocol issue our IMAP server is having with OE, but I am
unsure what I should do about it.
It appears that a single OE client will maintain concurrent connections to
the same mailbox. This causes problems for our IMAP server when the client
tries to set flags on a message that was discovered in a different
connection and is still not known to the current connection. Below is a log
that shows the conversation between the client and our IMAP server.
The STORE command is sent on connection 371. It is trying to set the delete
flag on a UID that was discovered by the client on connection 387 but has
not yet been mentioned on connection 371.
Currently, our IMAP server does not honor this STORE command. What is the
correct response to this command? Should I change our code to accommodate
this behavior?
13:47:03 Con: 371 C: 05ZD UID FETCH 1:22942 (UID FLAGS)
13:47:03 Con: 371 S: * 1 FETCH (UID 22934 FLAGS (\Seen))
13:47:03 Con: 371 S: * 2 FETCH (UID 22935 FLAGS (\Seen))
13:47:03 Con: 371 S: * 3 FETCH (UID 22939 FLAGS (\Seen))
13:47:03 Con: 371 S: * 4 FETCH (UID 22940 FLAGS (\Seen))
13:47:03 Con: 371 S: * 5 FETCH (UID 22941 FLAGS (\Seen))
13:47:03 Con: 371 S: * 6 FETCH (UID 22942 FLAGS (\Seen))
13:47:03 Con: 371 S: 05ZD OK UID FETCH completed
13:51:36 Con: 387 C: 05QQ SELECT "INBOX"
13:51:36 Con: 387 S: * 7 EXISTS
13:51:36 Con: 387 S: * 0 RECENT
13:51:36 Con: 387 S: * FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
13:51:36 Con: 387 S: * OK [UIDVALIDITY 22653] UID validity status
13:51:36 Con: 387 S: * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted
\Draft \Seen)] Permanent flags
13:51:36 Con: 387 S: 05QQ OK [READ-WRITE] SELECT completed
13:51:37 Con: 387 C: 05QR UID FETCH 22943:* (BODY.PEEK[HEADER.FIELDS
(References X-Ref . . . )
13:51:37 Con: 387 S: * 7 FETCH (UID 22945 FLAGS (4) ....)
13:51:37 Con: 387 S: 05QR OK UID Fetch Completed
13:51:37 Con: 387 C: 05QS UID FETCH 1:22942 (UID FLAGS)
13:51:37 Con: 387 S: * 1 FETCH (UID 22934 FLAGS (\Seen))
13:51:37 Con: 387 S: * 2 FETCH (UID 22935 FLAGS (\Seen))
13:51:37 Con: 387 S: * 3 FETCH (UID 22939 FLAGS (\Seen))
13:51:37 Con: 387 S: * 4 FETCH (UID 22940 FLAGS (\Seen))
13:51:37 Con: 387 S: * 5 FETCH (UID 22941 FLAGS (\Seen))
13:51:37 Con: 387 S: * 6 FETCH (UID 22942 FLAGS (\Seen))
13:51:37 Con: 387 S: 05QS OK UID Fetch Completed
13:51:37 Con: 387 C: 05QT UID FETCH 22945 (BODY.PEEK[] UID)
13:51:37 Con: 387 S: * 7 FETCH (UID 22945 (BODY.PEEK[] {size}
13:51:37 Con: 387 S: * ... message body ...
13:51:37 Con: 387 S: 05QT OK UID FETCH completed
13:51:37 Con: 387 C: ZZZZ LOGOUT
13:51:37 Con: 387 S: * BYE IMAP4rev1 Server signing off
13:51:37 Con: 387 S: ZZZZ OK LOGOUT completed
13:56:48 Con: 385 C: 05X8 SELECT "INBOX"
13:56:48 Con: 385 S: * 7 EXISTS
13:56:48 Con: 385 S: * 0 RECENT
13:56:48 Con: 385 S: * FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
13:56:48 Con: 385 S: * OK [UIDVALIDITY 22653] UID validity status
13:56:48 Con: 385 S: * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted
\Draft \Seen)] Permanent flags
13:56:48 Con: 385 S: 05X8 OK [READ-WRITE] SELECT completed
13:56:48 Con: 385 C: 05X9 UID FETCH 22946:* (BODY.PEEK[HEADER.FIELDS
(References X-Ref . . .)
13:56:48 Con: 385 S: 05X9 OK UID FETCH Completed
13:56:48 Con: 385 C: 05XA UID FETCH 1:22945 (UID FLAGS)
13:56:48 Con: 385 S: * 1 FETCH (UID 22934 FLAGS (\Seen))
13:56:48 Con: 385 S: * 2 FETCH (UID 22935 FLAGS (\Seen))
13:56:48 Con: 385 S: * 3 FETCH (UID 22939 FLAGS (\Seen))
13:56:48 Con: 385 S: * 4 FETCH (UID 22940 FLAGS (\Seen))
13:56:48 Con: 385 S: * 5 FETCH (UID 22941 FLAGS (\Seen))
13:56:48 Con: 385 S: * 6 FETCH (UID 22942 FLAGS (\Seen))
13:56:48 Con: 385 S: * 7 FETCH (UID 22945 FLAGS ())
13:56:48 Con: 385 S: 05XA OK UID FETCH completed
13:56:48 Con: 385 C: ZZZZ LOGOUT
13:56:48 Con: 385 C: * BYE IMAP4rev1 Server signing off
13:56:48 Con: 385 C: ZZZZ OK LOGOUT completed
13:59:39 Con: 371 C: 05ZE UID STORE 22945 +FLAGS.SILENT (\Deleted \Seen)
--
-----------------------------------------------------------------
For information about this mailing list, and its archives, see:
http://www.washington.edu/imap/imap-list.html
-----------------------------------------------------------------