开发 MAPI 邮件存储提供程序

适用于:Outlook 2013 | Outlook 2016

与其他 MAPI 服务提供程序一样,消息存储是动态链接库, (DLL) 向 MAPI 客户端应用程序和 MAPI 后台处理程序提供基础存储机制的服务。 消息存储提供程序将基础存储机制显示为 MAPI 客户端和 MAPI 后台处理程序可以使用的文件夹和消息的分层集。

下图显示了基本的 MAPI 消息存储体系结构。

消息存储体系结构

消息存储体系结构

可以使用所需的任何类型的基础存储机制来实现消息存储提供程序。 但是,需要注意性能问题。 此外,基础存储机制必须显示为 MAPI 对象的分层集合。 这些要求意味着,消息存储通常是通过使用现有数据库产品来实现的,该产品支持对数据库中的对象进行分层存储,并且具有编程接口或定义完善的文件结构。 例如,Microsoft Office Access、SQL 和 Oracle 数据库可用作基础存储机制。 某些数据库产品具有使实现 MAPI 功能更容易的功能集,因此你选择的数据库产品可能会受到消息存储提供程序需要支持的功能的影响。

使用现有数据库作为基础存储机制可节省工作,因为通常将数据库对象作为 MAPI 对象呈现给 MAPI 客户端比实现自己的分层存储机制更容易。 通过执行此操作,可以在比实现自己的分层存储机制更高的级别处理 MAPI 操作。 例如,搜索具有特定主题行的消息会成为一个相当简单的问题,即构造和提交适当的数据库查询,而不是实现复杂的例程来搜索分层存储机制。

消息存储提供程序与 MAPI 客户端和 MAPI 后台处理程序通信,以对文件夹和对象执行操作。 消息存储提供程序将这些操作转换为基础存储机制上的较低级别的操作。 MAPI 后台处理程序通常在发送和接收消息时与消息存储提供程序通信。 MAPI 客户端通常与邮件存储提供程序通信,以操作文件夹层次结构以及读取、编辑、删除和发送邮件。

MAPI 后台处理程序和 MAPI 客户端都与消息存储提供程序通信以创建新消息。 客户端应用程序在用户撰写消息时执行此操作。 MAPI 后台处理程序在收到传入消息时执行此操作。 在任一情况下,新邮件通常在邮件存储的“收件箱”文件夹中创建(如果有)。

消息存储提供程序大量使用 MAPI 表、文件夹、邮件和属性。 MAPI 表MAPI 文件夹MAPI 消息MAPI 属性概述中记录了这些对象的实现详细信息。 在尝试实现消息存储提供程序之前,应熟悉该材料。

有两种重要的消息存储提供程序类型:可以充当用户默认消息存储的提供程序和不能充当消息存储的提供程序。 默认消息存储是客户端应用程序和 MAPI 后台处理程序可执行任何消息传送任务(例如接收消息或创建文件夹)的存储。 默认消息存储提供程序必须支持比所有消息存储提供程序所需的最小数目更多的功能。

另请参阅