
Outlook搜尋精靈主要包含兩個功能:
1. 讀取Outlook中的郵件資訊并建立全文索引;
2. 提供搜尋功能, 支援各種複雜的邏輯表達式.
先看看如何讀取Outlook:
引用COM元件:
我這裡引用的是9.4版本. 對應Outlook2010. 然後添加通路Outlook的代碼:
Outlook以Folder的方式來管理收件箱, 發件箱, 已發郵件等. 一般情況下, 我們接收的郵件都在"收件箱"中, 發出的郵件都在"已發郵件"中, 是以我們從這兩個檔案夾中擷取郵件資訊. 為了更加友善使用, 我建立了一個MailInfo類型來存放需要索引的郵件内容:
先建立索引對象:
再循環讀取郵件并添加索引文檔:
最後将IndexProc放到背景線程中運作來提高使用者體驗:
OK, 大功告成! Outlook搜尋精靈支援如下搜尋字段:
字段
類型
描述
Subject
string
郵件标題
Body
郵件正文, HTML格式
Folder
郵件所屬目錄, 比如"收件箱", "已發郵件"等
From
發件人
To
收件人
ConversationId
會話ID
預設情況下, Outlook搜尋精靈會使用
進行搜尋, {0}會被自動替換成輸入的關鍵詞. 但是如果我們輸入的本身就是一個搜尋表達式, 那麼Outlook搜尋精靈會自動切換成進階搜尋模式, 用使用者輸入的表達式進行搜尋.
列舉幾個進階搜尋的例子:
為了讓Outlook搜尋精靈根據體貼好用, 我還設計了一些小功能, 比如Outlook連接配接中斷自動重連, 最小化到托盤等. enjoy吧!