Messaging Application Programming Interface

From Wikipedia, the free encyclopedia

MAPI is an acronym for Messaging Application Programming Interface implemented in Microsoft Windows. 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.

Given the pre-existing open messaging standards such as SMTP and IMAP, development of MAPI is sometimes criticized as an illustration of Microsoft's "Embrace, extend and extinguish" approach to internet protocols.

[edit] Protocol details

The MAPI protocol is proprietary to Microsoft, implemented using Microsoft's MSRPC strain of the DCE/RPC protocol.[1] 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.[2] While this hardly qualifies as encryption, it ensures that the protocol contents are not directly readable as clear text.

[edit] External links

[edit] References

  1. ^ Leighton, Luke Kenneth Casson (2001). Samba - The Next Generation: Architecture and Design, Introduction. Retrieved on 2006-03-20.
  2. ^ Leighton, Luke Kenneth Casson (2000). encryption of MAPI. Retrieved on 2006-03-20.
In other languages