5

我正在尝试像在 GMail 中一样创建类似的视图。我知道 GMail IMAP 有扩展 X-GM-THRID,我可以在 FETCH 命令中使用它,但这会返回相同数量的项目,我必须按线程 ID 手动对​​它们进行分组。有没有更快的方法来分组这个?我的意思是,谷歌 imap 服务器可以返回按线程 ID 分组的消息列表(如在 gmail 网络界面中)吗?更加具体:

如果我有这个列表(线程 ID | 文本)

  • 12345 “你好”
  • 12345 “嗨”
  • 12345“怎么了?”
  • 67890“你在吗?”
  • 67890“不,我不是”

我只想从服务器获取:

  • 12345 “你好”
  • 67890“你在吗?”

我可以这样做吗?最后,我必须自己分组,但这个解决方案效率低下且速度慢(我有很多消息要分组)

问候和对不起我的英语。

4

2 回答 2

5

子项的“In-Reply-To”标头应具有父项的 Message-Id 标头的值。

标题“参考”中还有另一个字段,其中包含其所有父级的消息 ID。

您可以根据您的要求使用其中任何一个。

于 2011-05-25T09:36:27.400 回答
0

岁,但是:

不满意的答案是:你不能 --- IMAP 只知道消息,不知道线程,所以你只能通过查看所有消息并聚合来获取线程信息。

您可以做的是获取UID 和 X-GM-THRID 字段,这很快(每条消息大约 40 个字节左右)。然后你找到每个线程的第一条消息,然后使用 UID FETCH 来提取那些。通过在知道要获取哪些消息之前不获取整个消息信封,可以节省大量带宽。

于 2017-04-21T15:26:33.377 回答