2011-05-22 58 views
4

我想在GMail中創建類似的視圖。我知道GMail IMAP 的擴展名爲X-GM-THRID,我可以在FETCH命令中使用,但是這個 會返回相同數量的項目,我必須通過 線程ID將它們手動分組。有更快的方法來分組嗎?我的意思是,可以谷歌 IMAP服務器返回我列出的消息按線程ID分組(如在Gmail的Web界面)?更具體地講:GMail IMAP - 如何獲得對話(線程)列表?

如果我有這個名單(線程ID | TEXT)

  • 12345 「你好」
  • 12345 「喜」
  • 12345 「?這是怎麼回事」
  • 67890「你在嗎?」
  • 67890 「不,我不是」

我想只從服務器獲取: 「你在那裏」

  • 12345 「你好」

我可以那樣做嗎?最後,我將不得不按照自己的方式進行分組,但這種解決方案效率低下且速度慢(我有許多消息要分組)

對我的英語感到遺憾和遺憾。

回答

4

孩子的「In-Reply-To」標題應具有父級的Message-Id標頭的值。

標題'References'中有另一個字段,其中包含其所有父級的消息ID。

您可以按照您的要求使用其中的任意一種。

+0

此答案不正確,請參閱http://webapps.stackexchange.com/questions/965/how-does-gmail-decide-to-thread-email-messages Gmail的線程算法不適用於郵件頭以這種方式。 – 2014-01-15 19:32:01

0

歲,但:

的不令人滿意的答案是:你不能--- IMAP只知道消息,沒有線程,所以你只能通過查看所有郵件和彙總得到線程信息。那。

你可以做的是取得只是 UID和X-GM-THRID字段,它是快速的(每個消息約40字節左右)。然後,您會找到每個線程的第一條消息,然後使用UID FETCH來拉取這些消息。通過不提取整個郵件信封,直到您知道要獲取哪些郵件,可以節省大量帶寬。

+1

您可以發出'x uid search x-gm-thrid 1234567'來獲取線程中所有消息的UID。 – arnt 2017-04-21 20:08:32