基于VSTO 的Outlook 联系人管理系统的设计与实现

2022-01-16 09:55孙光峤
科技创新与应用 2022年1期
关键词:收件人联系人视图

孙光峤

(中国电子科技集团公司第五十五研究所,江苏 南京 210016)

Outlook 已在企业中应用广泛,员工通过Outlook 收发邮件,实现必要的沟通、交流。在邮件发送环节,群发邮件占据了较大比例,手动逐个选择收件人,不仅效率低下而且极易出现错选、漏选的情况。

Visual Studio Tools for Office(VSTO)技术可以使用.NET Framework 定制和扩展Microsoft Office 应用程序和文档,它包含的工具还可以使这个定制在Visual Studio 中更容易完成。

本文介绍并实现的联系人管理系统,是基于VSTO在Outlook 自带联系人功能基础上进行的补充和拓展。系统自动从后台SQL SERVER 数据库同步联系人及分组信息,然后更新本地联系人,从而灵活、方便地实现联系人管理,达到提高收件人选择准确性和效率的目的。

1 设计与实现

1.1 数据库设计

系统数据库采用SQLServer2008,共有3 张表,分别为[EMainlDef],[EmailGroup],[GroupDef]。表[EMainlDef]及[GroupDef]分别用于邮箱账户和邮箱分组的定义,[Email-Group]为系统中邮箱和分组的关联关系表。各个表的相关字段设置及描述见表1-表3。

表1 EMainlDef

表2 EMailGroup

表3 GroupDef

此外,数据库还包括一张视图[V_EMailGroup],该视图通过表[EmailGroup]将表[EMainlDef]、[GroupDef]关联,提供完整的邮箱及分组信息查询。前端与数据库的数据交互通过Linq to SQL 实现,极大地减少了开发量。

1.2 界面设计

系统通过Ribbon 为用户提供了必要的操作菜单,主要用于手动同步及自定义联系人的编辑,具体界面如图1所示。

图1 通过Ribbon 提供的操作菜单

1.3 工作流程

1.3.1 Outlook 启动,Ribbon 加载

在安装了该软件的计算机上每次打开Outlook 时会加载1.2 所述的Ribbon 界面,此时会触发Ribbon_Load事件。

1.3.2 同步或注册当前邮箱信息

当Ribbon_Load 事件触发时,软件获取当前Outlook的邮箱信息并确认数据库中是否存在该信箱,如果已经存在则同步最新信息到数据库,反之则注册当前邮箱到数据库。

1.3.3 定时器开启,检测联系人版本

当定时器触发后确认当前联系人的数据版本是否为最新版本,如果不是则执行数据同步。

1.3.4 数据同步过程

(1)从数据库下载最新联系人信息;

(2)清空本地联系人;

(3)根据下载的最新数据创建联系人;

(4)根据下载的最新分组信息添加联系人分组;

(5)更新注册表,记录当前联系人的版本号。

具体工作流程如图2 所示。

图2 系统工作流程示意图

1.4 更改系统设置

为了在发送邮件选择收件人地址时优先从联系人中搜索、匹配,需要设置地址选项,将设置调整为联系人优先,如图3 所示。

图3 调整地址检查顺序为联系人优先

2 主要实现代码

2.1 添加引用

using OL=Microsoft.Office.Interop.Outlook;

2.2 获取当前邮箱信息

2.3 添加联系人

2.4 添加联系人分组

3 实施效果

在已安装上述软件的计算机上,当在收件人搜索栏中输入字母“G”时,系统会自动从联系人中匹配以“G”开头的联系人或分组。选择目标分组后,该分组下的联系人对应的邮箱地址会被一起加入到收件人列表中。效果如图4 所示。

图4 联系人匹配

4 结束语

通过上述方案,我们实现了Outlook 联系人、分组的灵活管理。在邮件发送环节,避免了手动逐个选择收件人,不仅提高了效率而且避免了错选、漏选收件人的情况,为工作带来便利。

猜你喜欢
收件人联系人视图
快递服务合同中收件人权益保护研究
让重要联系人更醒目
为每个联系人设定不同的铃声
查无此人
教你将手机联系人导出到Excel
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图