【发布时间】:2013-09-04 09:30:18
【问题描述】:
您可以使用网络界面、Google 的 Android 客户端或使用 IMAP 访问 gmail。据我所知,Web 界面和 Android 应用程序使用与 IMAP 完全不同的协议——它们不仅仅是基于它的界面。我确定这一点的原因是因为 Android 应用程序可以在
所以我的问题是关于这个秘密协议的已知信息是什么?它的参考文档在哪里?是否进行了逆向工程? Google 是否批准使用它?
arnt 的回答提供了一个很好的方法来测试 gmail 的原始 imap 速度:
$ openssl s_client -host imap.gmail.com -port 993 -crlf
...
* OK Gimap ready for requests from 12.34.56.78
$ a LOGIN ***@*** ***
a OK
$ c SELECT "[Gmail]/All mail" !!!!
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] Flags permitted.
* OK [UIDVALIDITY 673376278] UIDs valid.
* 1142417 EXISTS
* 0 RECENT
* OK [UIDNEXT 1159771] Predicted next UID.
* OK [HIGHESTMODSEQ 8670601]
c OK [READ-WRITE] [Gmail]/All mail selected. (Success)
我标记的命令 c SELECT "[Gmail]/All mail" 大约需要 20 秒 才能完成。由于那段时间比我相对动力不足的 Android 手机上的 GMail 应用程序启动和加载所有邮件标签所需的时间要长,即使在我清除了它的缓存之后,它也能在不到 6 秒的时间内完成它。 Web 客户端速度更快。
除非我遗漏了一些基本的东西,否则这证明“毫无疑问”Google 的 GMail 客户端不使用 IMAP,因为您永远不必等待 20 秒来完成任何 SELECT 命令。
【问题讨论】:
-
你确定不是 imap。 Imap 无需下载所有电子邮件即可打开文件夹。因此,它可以下载前 10 封电子邮件的一些信息,并在后台继续下载其余信息。
-
是的。大型邮箱的 IMAP 性能会降低。 Gmail 可以在不到 3 秒的时间内显示包含 100 万封邮件的邮箱中最近的 50 个线程。没有其他 IMAP 客户端可以做到这一点。 Gmail 中有更多非 imapness 的迹象,但这不适合这个问题。
-
我相信您有两个选择可以解决这个问题 - 拆卸他们的客户端或配置设备以通过您计算机上的 WiFi 并检查目标端口是什么。
-
我认为 Gmail 应用程序没有使用 POP 或 IMAP,因为我禁用了两者,我的 Android 手机仍然可以接收电子邮件。
-
稍后:一个 gmail 的 rest api 已经公开:developers.google.com/gmail/api
标签: gmail protocols imap gmail-imap