Skip to content

Support QRESYNC - Quick Mailbox Resynchronization (RFC 7162) #475

Description

@scanner

Summary

Implement RFC 7162 QRESYNC (Quick Mailbox Resynchronization), allowing clients to efficiently resynchronize mailbox state after reconnection without fetching all messages.

Motivation

QRESYNC is the highest-impact extension for mobile clients. iOS Mail uses QRESYNC to avoid re-downloading the full mailbox state on every connection, dramatically reducing bandwidth usage and sync time on cellular connections.

Scope

  • Advertise QRESYNC in CAPABILITY response (requires ENABLE activation)
  • Support SELECT/EXAMINE with QRESYNC parameters: (UIDVALIDITY MODSEQ [known-uids [seq-match-data]])
  • Return * VANISHED (EARLIER) <uid-set> for expunged messages since last sync
  • Replace individual * n EXPUNGE with * VANISHED <uid-set> for QRESYNC-enabled sessions
  • Track and persist per-mailbox HIGHESTMODSEQ (builds on CONDSTORE Support CONDSTORE - RFC4551 #419)
  • Support UID FETCH with VANISHED modifier

Prerequisites

References

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions