GMail IMAP-如何获取对话(线程)列表?
我正在尝试创建类似GMail的视图。我知道GMail的IMAP 有扩展名X-GM-THRID,我可以在FETCH命令中使用它,但是 返回相同数量的项目,我必须手动按 线程ID。是否有更快的方法对此进行分组?我的意思是,谷歌可以吗 imap服务器返回按线程id分组的消息列表(如gmail web界面)?更具体地说: 如果我有这个列表(线程ID |文本)GMail IMAP-如何获取对话(线程)列表?,gmail,imap,gmail-imap,Gmail,Imap,Gmail Imap,我正在尝试创建类似GMail的视图。我知道GMail的IMAP 有扩展名X-GM-THRID,我可以在FETCH命令中使用它,但是 返回相同数量的项目,我必须手动按 线程ID。是否有更快的方法对此进行分组?我的意思是,谷歌可以吗 imap服务器返回按线程id分组的消息列表(如gmail web界面)?更具体地说: 如果我有这个列表(线程ID |文本) 12345“你好” 12345“你好” 12345“怎么了?” 67890“你在吗?” 67890“不,我不是” 我只想从服务器获取: 12
- 12345“你好”
- 12345“你好”
- 12345“怎么了?”
- 67890“你在吗?”
- 67890“不,我不是”
- 12345“你好”
- 67890“你在吗?”
向我的英语致意并致歉。子项的“回复”标题应具有父项的消息Id标题的值 标题“References”中有另一个字段,其中包含其所有父项的消息ID 您可以根据自己的要求使用其中任何一个。岁,但: 不令人满意的答案是:你不能——IMAP只知道消息,而不知道线程,所以你只能通过查看所有消息并聚合来获取线程信息
您可以做的是只获取UID和X-GM-THRID字段,这很快(每条消息大约40字节)。然后找到每个线程的第一条消息,然后使用UID FETCH来提取这些消息。通过在知道要获取哪些邮件之前不获取整个邮件信封,可以节省大量带宽。这个答案不正确,请参阅Gmail的线程算法无法以这种方式处理邮件标题。您可以发出
x uid search x-gm-thrid 1234567
以获取线程中所有邮件的uid。