GMail IMAP - 如何获得对话(线程)列表?

时间:2011-05-22 15:31:46

标签: gmail imap gmail-imap

我正在尝试创建类似于GMail的视图。我知道GMail IMAP 我可以在FETCH命令中使用扩展X-GM-THRID,但是这个 给我相同数量的项目,我必须手动分组 线程ID。有没有更快的方式来分组?我的意思是,可以google imap服务器返回按线程ID分组的消息列表(如在gmail web界面中)?更具体一点:

如果我有这个清单(THREAD ID | TEXT)

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

我只想从服务器获取:

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

我能这样做吗?最后,我必须通过我自己对此进行分组,但这种解决方案效率低且速度慢(我有很多消息要分组)

对我的英语表示抱歉和抱歉。

2 个答案:

答案 0 :(得分:5)

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

标题'References'中还有另一个字段,其中包含其所有父标记的消息ID。

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

答案 1 :(得分:0)

岁,但是:

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

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