Skip to content
  • Daniel Vrátil's avatar
    [imap] Implement support for QRESYNC extension (RFC5162) · 01061cd6
    Daniel Vrátil authored
    QRESYNC is currently the fastest way to synchronize mailbox: we receive
    information about messages with changed flags and removed messages
    already in response to the initial SELECT command, so all we need to do
    afterwards is to fetch new messages (which is very easily detected).
    
    QRESYNC support is implemented in a separated task from RetrieveItemsTask,
    because thanks to QRESYNC the command flow is different, and trying to tie
    that into the general RetrieveItemsTask would be too messy.
    
    There's a potential for creating a common base-class for different RetrieveItemsTask
    implementation based on the supported IMAP extension (e.g. CONDSTORE), which
    also has a different flow from the plain sync.
    01061cd6