Open Architecture for Open Connectivity

The Microsoft Exchange client is designed to work with virtually any messaging or workgroup system—whether it's LAN-based, host-based, or an online service. Likewise, transparent access to these various messaging systems is available to any application, not just Microsoft Exchange. The key to this open architecture is MAPI.

Figure 1 - Windows Messaging Subsystem architecture

MAPI defines both an application programming interface (API) and a service provider interface (SPI). The API is used by end-user applications, including Microsoft Exchange, while the SPI is used to write drivers (sometimes called providers). As the above diagram shows, MAPI defines three different types of drivers:

Transport drivers provide the ability to send and receive e-mail on any messaging system.

Address Book drivers allow seamless access to any directory service, mailing lists, or other name databases.

Store drivers let MAPI applications read and write to local or server-based message stores, mailboxes, and workgroup databases.

A given e-mail system may require several MAPI drivers: one for its Transport, one or more local or server-based Address Books, and one or more local or server-based Stores (such as Personal Mailbox, Shared Folders). To simplify the use of multiple e-mail systems, MAPI drivers are grouped together in logical bundles called Services. A MAPI Service is a set of MAPI drivers — typically everything that's needed to use a given vendor's messaging system. For example, the Microsoft Mail service is actually a bundle of several MAPI drivers:

Microsoft Mail Service

Microsoft Mail Transport driver

Microsoft Mail Postoffice Address Book driver

Microsoft Mail Folders driver