
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吧!