我正在构建一个简单的网络邮件,我想为IMAP使用CONDTORE扩展:它允许获取自某个日期以来更改的所有内容(消息、标志…),这对于将电子邮件客户端同步到IMAP服务器非常实用。
然而,我完全不知道这个IMAP扩展是否真的受到大多数IMAP服务器的支持。
那么,有什么来源可以告诉我这个扩展的支持程度吗?例如,GMail或Hotmail支持它吗?
(这背后隐藏的问题很明显:CONDTORE是将我的电子邮件客户端同步到IMAP服务器的最合适的方式吗?我在本地存储电子邮件副本,这就是我需要同步的原因)
由于需要更精确的答案,我编写了一个小的node.js脚本,并使用了一些测试帐户。
以下是结果,如果你需要更多的账户,请告诉我。
雅虎
没有CONDTORE。
- IMAP4REV1
- ID
- 命名空间
- X-ID账户
- UIDPLUS
- 文字+
- XAPPLEPUSHSERVICE
- xym最高模式
gmail
支持CONDTORE。
- IMAP4REV1
- 取消选择
- 空闲
- 命名空间
- 定额
- ID
- XLIST
- 儿童
- X-GM-EXT-1
- UIDPLUS
- 压缩=放气
- 启用
- 移动
- CONDTORE
- ESEARCH
outlook.com
没有CONDTORE。
- IMAP4REV1
- 儿童
- ID
- 命名空间
- UIDPLUS
- 取消选择
否,它没有得到广泛支持。你可以将其视为一种优化,以便在可用时使用,但你不能依赖它。你还需要一种跟踪删除消息的方法,这不是condstore可以告诉你的
然而,Gmail最近刚刚推出了对它的支持。
Dovecot和gmail支持condstore,任何营销专业人士都会告诉你,仅他们就覆盖了70%的用户。你是否相信营销数学是另一个问题,70%在你眼中是否是一个很大的问题是第三个问题,这两个问题都不适合SO。
要检查任何特定的服务器,请执行openssl s_client -connect asdf.example.org:993 -crlf
或telnet asdf.example.org 143
连接,然后执行a login asdf fdsa
登录,最后执行b capability
获取扩展列表。您将看到答复中列出的condstore
。或者不,视情况而定。
编辑:由于@guettli的请求,我现在取了一组方便的电子邮件地址,对于每个地址,我试探性地确定了一些可能的IMAP服务器名称,并尝试连接到993端口。如果我只计算我可以连接的地址,并做一些猜测,比如假设所有Dovecot服务器都是新的,足以支持CONDTORE,我现在看到>80%的CONDTORE。
然而,你的地址组合与我的不同(恰好由一家特定的免费邮件提供商主导),计数方式取决于你的目的。你想统计那些拥有CONDTORE,但用户主要使用网络界面的大型提供商吗?
如果你想计算服务器而不是用户,Shodan可以提供帮助。搜索imap和最受欢迎的服务器时,75%的服务器有condstore,其余25%的服务器可能有也可能没有。但当然,这是一种误导性的统计方式:大多数用户使用的是一些免费邮件服务,其余大部分用户只使用数千家其他提供商。
如果您想自己运行调查,请连接到端口143和993,然后发送a capability
和CRLF。如果响应包括Condstore、qresync、与modseq有关的任何内容,或者服务器横幅名称为Dovecot或Cyrus,则支持Condstore。(有些服务器在您登录之前不会告诉您它们是否支持condstore,所以查看服务器名称是一个很好的代理。)
那么,有什么来源可以告诉我这个扩展的支持程度吗?例如,GMail或Hotmail支持它吗?
对于gmail:
$openssls_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
作为其他IMAP服务器的练习。