2010-03-05 38 views
3

例如,如果原始消息(消息1)...是否有任何開源工具可以自動「檢測」Gmail等電子郵件線程?

嘿喬恩,
想要去得到一些比薩餅?
- 比爾

和應答(消息2)是...

比爾,
對不起,我不能讓今天的午餐。
喬納森公園,CTO的Acme系統

於星期三,2010年2月24日在下午04:43,比爾·沃特斯寫道:

>嘿,約翰,
>想要去得到一些比薩餅?
> - 比爾

在Gmail中,該系統(a)中檢測到消息2是消息1的應答而成爲各種各樣的「線」,該(b)中檢測其中回覆的部該消息實際上是並且將其從用戶隱藏起來。 (在這種情況下,隱藏部分將從「On Wed,Feb ...」開始並繼續到消息的結尾)。

很明顯,在這個簡單的例子中,很容易檢測到「On < Date >,<名稱>寫道:「或」>「字符前綴。但是許多電子郵件系統有許多不同的標記回覆(更不用說HTML電子郵件)。我覺得你必須要有一些該死的智能字符串解析算法,以便能夠接近GMail的優秀表現。

此技術是否已經存在於某個開源項目中?無論是在某個圖書館專門用於這種方式,還是在一些開源類似的電子郵件客戶端執行類似的消息線程?

謝謝。

+2

可能的解決方案 哎呦,在更多的搜索我想想我可能已經在這些線程中發現了我正在尋找的內容: stackoverflow.com/questions/262234/algorithm-for-organizing-emails-into-threads stackoverflow.com/ questions/1966937/email-threading ...參考關於「In-Reply-To」標題的討論http://groups.google.com/group/Gmail-Help-Settings-en/browse_thread/thread/9b6ad523513e1858 as以及作爲一種算法來處理我正在談論的關於http://www.jwz.org/doc/threading.html以及該算法的一個ruby實現http://github.com/fdietz/jwz_threading。 – 2010-03-05 23:39:06

+0

回答你自己的問題是允許和鼓勵的。隨意這樣做。 :) – 2010-03-05 23:56:53

+0

你碰到過Jamie的[algorithm](http://www.jwz.org/doc/threading.html)的objective-c實現嗎? – abbood 2012-12-25 09:29:38

回答

0

我相信Gmail的作品是的主題標題。目前我無法檢查,但標題的快速更改可能會破壞線程。

下是很難預測的,正如你提到:

On Wed, Feb 24, 2010 at 4:43 PM, Bill Waters wrote: 

,但抓住了電子郵件標題Pizza tomorrow和假設的Re: Pizza tomorrow前綴是相當多的可預測性。您還可以假設FW:RE:(以大寫形式)。

0

您的意思是解決通訊員沒有設置In-Reply-To或References頭域的問題嗎?

否則,您可能會使用mutt並將其配置爲默認情況下不顯示引號。

(應該由地球上的任何其他郵件工具來完成)(嗯,我從來沒有在Outlook中獲得樹形線程視圖。)

[反應下面編輯評論]

如果你試圖建立自己的軟件,那麼這個問題顯然是適合很好。但是,我只能給你我的2c。如果你不能依賴明確的頭文件,唯一要做的就是帶上一堆郵件,學習最常用的用來表示引號的短語。 (幸運的是,有一些約定,日期格式和名稱/電子郵件並不完全是任意的。)

如果您對通信線程進行分析,您可能希望指出關係的可能性。如果你只是爲了方便用戶而做...好吧,...我的個人意見?不要爲那些不能使用像樣的郵件工具的人而流汗。

+1

我正在開發一個軟件工具(其中包括)需要接收一堆原始的電子郵件消息,並使用任何可能的信息從消息中構建「樹」或「線程」結構。 我只是在RFC822電子郵件中瞭解In-Reply-To:和References:標頭。看起來我會使用這些數據,但在某些情況下它們可能會丟失,因此我正在尋找一些啓發式驅動的方法來確定「什麼是對什麼的響應」。 – 2010-03-18 21:28:55

0

你使用什麼樣的Mail Delivery Agent

你正在開發自己的?那麼,您是否計劃實施IMAP協議?

如果您使用賽勒斯(或處理IMAP的任何其他產品)與SORT and THREAD extensions,那麼它已經建成。

在這兩種情況下,你應該看一看RFC 5256

相關問題