Messaging Application Programming Interface
MAPI is an acronym for
Messaging Application Programming Interface. MAPI allows client programs to become (
electronic mail) messaging-enabled, -aware, or -based by
calling MAPI subsystem routines that interface with certain
messaging systems and
message stores. MAPI refers both to the
Application Programming Interface as well as the
proprietary protocol which
Microsoft Outlook uses to communicate with
Microsoft Exchange.
As well as the Extended MAPI client interface, programming calls can be made indirectly through the API client interface
Simple MAPI, or through the
Common Messaging Calls (CMC) API client interface, or by the object-based
CDO Library interface. These three methods are easier to use and designed for less complex messaging-enabled and -aware applications. The full Extended MAPI interface is required for messaging-based applications.
MAPI was originally designed by
Microsoft. The company founded its MS Mail team in
1987, but it was not until it acquired Consumers Software Inc in
1991 to obtain
Network Courier that it had a messaging product. Reworked it was sold as MS PC Mail (or
Microsoft Mail for PC Networking). The basic API to MS PC Mail was MAPI version 0. MAPI uses functions
based on the
X.400 XAPIA standard.
Extended MAPI is the main e-mail data access method used by
Microsoft Exchange. Simple MAPI and CMC were removed from Exchange 2003.
In light of the existence of open messaging standards such as
SMTP and
IMAP, MAPI is sometimes criticized as an illustration of Microsoft's "
Embrace, extend and extinguish" approach to internet protocols.
The MAPI protocol is proprietary to Microsoft implemented using Microsoft's
MSRPC strain of the
DCE/RPC protocol.
[{{]
cite web | author= Leighton, Luke Kenneth Casson | title=Samba - The Next Generation: Architecture and Design, Introduction |
url=http://www.samba-tng.org/docs/tng-arch/tng-arch01.html | year=2001 | accessdate=2006-03-20
Microsoft does not publish the details of the protocol to the public. What is known about the protocol comes predominantly from third-parties who have
reverse-engineered the protocol. In order to thwart such efforts, the protocol contents are filtered with an
XOR operation against 0xa5
hexadecimal.
[{{]
cite web | author=Leighton, Luke Kenneth Casson | title=encryption of MAPI |
url=http://mail.gnome.org/archives/evolution-list/2000-August/msg00321.html | year=2000 |accessdate=2006-03-20
While this hardly qualifies as encryption, it ensures that the protocol contents are not directly readible as clear text.
*
Messaging API at MSDN Library*
OpenChange project - details of MAPI protocol and tools for exploring MAPI protocol*
The Open Connector project - an effort to connect Outlook to calendar servers other than Microsoft Exchange