天天看點

- C#程式設計大幅提高OUTLOOK的郵件搜尋能力!

- C#程式設計大幅提高OUTLOOK的郵件搜尋能力!
- C#程式設計大幅提高OUTLOOK的郵件搜尋能力!

Outlook搜尋精靈主要包含兩個功能:

1. 讀取Outlook中的郵件資訊并建立全文索引;

2. 提供搜尋功能, 支援各種複雜的邏輯表達式.

先看看如何讀取Outlook:

引用COM元件:

- C#程式設計大幅提高OUTLOOK的郵件搜尋能力!

我這裡引用的是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吧!

繼續閱讀