Yes, modseqs aren't tracked in a mailbox until client expresses an interest for them. It would be a waste of disk space to save them since 99% of users don't need them.
Makes sense, our mail client gets caught in the middle though, because it uses HIGHESTMODSEQ to track mailbox updates without using MODSEQ options on SELECT/FETCH to track message updates.
RFC 4551 says that HIGHESTMODSEQ or NOMODSEQ MUST be returned. Hmm. Perhaps:
- If the session is known to have modseqs enabled, immediately enable modseqs for newly created mailboxes
MODSEQ seems to be enabled on the mailbox, not on the session. For disconnected IMAP, there will frequently be new sessions established, and so we may not have a good indicator of whether the client is using MODSEQ (based on my reading). The current approach of looking for a MODSEQ related command seems to work in most cases, and so I'd be tempted to keep the current functionality (minus the incorrect reporting of HIGHESTMODSEQ if we can find a solution).
- If a mailbox doesn't have modseqs enabled, return NOMODSEQ. This isn't ideal, but seems like the only possibility.
The RFC also states that if we return NOMODSEQ we'd have to return a tagged BAD response to "UID FETCH 1 MODSEQ", which appears to one of the commands that enables MODSEQ for Dovecot ("SELECT INBOX (CONDSTORE)" also enables it...). What about returning a BAD response and at the same time start tracking MODSEQ so that future SELECT commands would return HIGHESTMODSEQ? Do we know what email clients are using CONDSTORE options and how they'd react to a mailbox suddenly having MODSEQ capabilities after we just told them it didn't?
Glenn.
This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.