Is IMAP CONDSTORE widely supported?

2019-05-11 09:12发布

问题:

I'm building a simple webmail and I would like to make use of the CONDSTORE extension for IMAP: it allows to fetch everything that has changed (messages, flags, …) since a date, which is very practical to synchronize the email client to the IMAP server.

However I have absolutely no idea if this IMAP extension is actually supported by most IMAP servers or not.

So is there any kind of source that could tell me how well this extension is supported? For example, does GMail or Hotmail support it?

(the hidden question behind this is obvious: is CONDSTORE the most appropriate way to synchronize my email client to the IMAP server? I store locally copies of emails, that's why I need synchronization)

回答1:

No, it is not widely supported. You can treat it as an optimization to use when available, but you cannot depend on it. You also need a way to track removed messages, which is not something condstore can tell you

Gmail, however, just rolled out support for it recently.



回答2:

As I needed a more precise answer, I did a small node.js script and used some test accounts.

Here are the results, if you need more accounts, tell me.

yahoo

No CONDSTORE.

  • IMAP4REV1
  • ID
  • NAMESPACE
  • X-ID-ACLID
  • UIDPLUS
  • LITERAL+
  • XAPPLEPUSHSERVICE
  • XYMHIGHESTMODSEQ

gmail

CONDSTORE supported.

  • IMAP4REV1
  • UNSELECT
  • IDLE
  • NAMESPACE
  • QUOTA
  • ID
  • XLIST
  • CHILDREN
  • X-GM-EXT-1
  • UIDPLUS
  • COMPRESS=DEFLATE
  • ENABLE
  • MOVE
  • CONDSTORE
  • ESEARCH

outlook.com

No CONDSTORE.

  • IMAP4REV1
  • CHILDREN
  • ID
  • NAMESPACE
  • UIDPLUS
  • UNSELECT


回答3:

Dovecot and gmail support condstore, and any marketing professional will tell you that they alone cover 70% of the users. Whether you believe marketing math is another question, and whether 70% is a lot in your eyes is a third, and neither of those questions are appropriate for SO.

To check any particular server, do either openssl s_client -connect asdf.example.org:993 -crlf or telnet asdf.example.org 143 to connect, then a login asdf fdsa to log in and finally b capability to get the list of extensions. You will see condstore listed in the reply. Or not, as the case may be.



回答4:

So is there any kind of source that could tell me how well this extension is supported? For example, does GMail or Hotmail support it?

For gmail:

$ openssl s_client -connect imap.gmail.com:993 -crlf

t login chetsteadman787@gmail.com ******** 
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH

Left as an exercise for other IMAP servers.