2014-11-25 62 views
0

我目前正試圖在我的收件箱中搜索一些類似於「不再工作」的字符串,但問題是,imap會將包含3個單詞的電子郵件列表返回給我,而不是字符串「不再工作」。用完整字符串IMAP搜索

任何想法如何解決這個問題?我沒有包含此字符串的消息,但由於上面解釋的問題,IMAP返回了2個結果。

a1 SEARCH BODY "not working anymore" 
* SEARCH 4090 7752 

回答

1

在客戶端代碼中過濾/驗證服務器的結果。

更長的答案是,IMAP服務器用來做你想做的事情,但隨着用戶希望更聰明更快速地搜索,服務器開始實施它。例如,用戶想要查找這樣的消息:

foo foo foo foo foo foo foo not working 
anymore foo foo foo foo 

空白與您的搜索詞不匹配。你認爲服務器應該返回該消息嗎?

IMAP規範在這個問題上是無聲的。當我讀到它時,如果一條消息包含確切的字符串,那麼該規範說消息必須與搜索匹配,但如果消息沒有,那麼......那麼,服務器和客戶端應該採取行動來滿足用戶並實現世界和平。這意味着您從服務器獲得的搜索結果包含您想要的所有消息,因此過濾不會錯過任何結果。

+0

感謝您的回答。 但是在數據表中,函數搜索主體將該短語與正文匹配。實際上,它不匹配短語,而是匹配短語的所有單詞。然後,我想沒有辦法將電子郵件與正則表達式匹配來找到要加載的好電子郵件,對嗎? – 2014-11-25 08:13:38

+0

IMAP不支持正則表達式搜索。 – arnt 2014-11-25 08:30:58

+0

你認爲有可能研究一個特定位置的囤積物嗎? – 2014-11-25 09:09:47