# Messaging Application Programming Interface

Messaging Application Programming Interface (MAPI) è un'architettura di messaggistica e un Component Object Model (Modello ad oggetti per componenti), basato sulle API (Interfaccia di Programmazione di un'Applicazione) per Microsoft Windows. MAPI permette ai programmi client di diventare capaci di inviare un messaggio di posta elettronica, una (e-mail) in chiaro (aware), o basato su chiamate RPC a un sottosistema di routine MAPI che interfaccia con alcuni server di messaggistica. Un insieme (libreria software) di routine per effettuare comunicazione di processi con il sistema di mailing (messaggistica). Mentre MAPI è progettato per essere indipendente dal protocollo, di solito è usato con MAPI/RPC, un protocollo proprietario che Microsoft Outlook usa per comunicare con Microsoft Exchange. RPC (Remote Procedure Call) è un sistema di comunicazione networking (in ambiente distribuito), basato su chiamate a procedure remote. Una API, che include MAPI, è solo un insieme di interfacce. Per fare in modo che la comunicazione si verifichi, necessita di un qualche tipo di trasporto, cioè il ruolo svolto da RPC.

## Storia

MAPI è stato originariamente creato da Microsoft. La compagnia ha creato il suo team MS Mail nel 1987, ma è stato fino a quando non ha acquisito Consumers Software nel 1991 per ottenere Network Courier che ha avuto un prodotto di messaggistica. Rielaborato, è stato venduto come MS PC Mail, o Microsoft Mail per PC Networking (reti di PC). Le API di base per MS PC Mail erano denominate MAPI version 0 (o MAPI0). MAPI usa funzioni liberamente basate sullo standard X.400 XAPIA standard. MAPI include servizi per l'accesso a message transports, message stores (Mailbox), e directories.
In aggiunta all'interfaccia del client Extended MAPI, chiamate di programmazione possono essere effettuate indirettamente attraverso l'interfaccia client API Simple MAPI, sia attraverso l'interfaccia client API Common Messaging Calls (CMC), oppure mediante un'interfaccia object-based Collaboration Data Objects (CDO) Library. Questi tre metodi sono più facili da usare e sono progettati per programmi meno complessi di messaggistica con interfacce utenti amichevoli. Simple MAPI e CMC sono state rimosse sin dalla versione Microsoft Exchange Server 2003.

## Simple MAPI

Simple MAPI è un subset (sottoinsieme) di 12 funzioni che consentono agli sviluppatori di aggiungere funzionalità di messaggistica di base. Extended MAPI consente il controllo completo del sistema di messaggistica sul computer client, creazione e manipolazione dei messaggi e dei client delle mailbox (casella postale per il traffico e-mail), service provider, e così via. Simple MAPI viene fornito con Microsoft Windows, come parte di Outlook Express/Windows Mail mentre le funzionalità complete Extended MAPI sono incluse in Office Outlook e Exchange. Windows 7 (Seven) ha rimosso il supporto per Simple MAPI, mantenendolo solo per Extended MAPI, non fornendo più anche i programmi client di posta elettronica, come Outloox Express e Windows Mail che supportavano Simple MAPI. Il programma di posta che viene fornito gratuitamente, Windows Live Mail supporta solo Extended MAPI. Dal punto di vista pratico alcuni programmi che supportano Simple MAPI come ad esempio Mozilla Thunderbird, PDFCreator, OpenOffice.org, se installati su Windows Seven non possono più, ad esempio col tasto destro del mouse, aprire un programma di posta elettronica o inviare direttamente un allegato ad un messaggio di posta interagendo con un software Microsoft. Lo possono fare, anche su Windows7, solo ad esempio usando OpenOffice.org e scegliendo di fare diventare il documento prodotto un allegato ad un messaggio di posta di Thunderbird, ecc.

## Interfaccia verso Service provider

La versione completa (full) Extended MAPI interface è necessaria per interfacciare servizi di messaggistica di base verso applicativi client come Outlook. Ad esempio, alcuni fornitori non-Microsoft di servizi di posta elettronica hanno creato provider di servizi MAPI per consentire ai loro prodotti di essere accessibili tramite Outlook. Esempi sono: Axigen Mail Server, Kerio Connect, Scalix, Zimbra, HP OpenMail, IBM Lotus Notes, Zarafa e Bynari.
MAPI ha avuto anche un'interfaccia di fornitore di servizi di quel genere. Infatti Microsoft utilizza questa interfaccia di MS Mail verso un sistema di posta elettronica basato su Xenix, per uso interno. MAPI estesa è il principale metodo di accesso ai dati e-mail utilizzato da Outlook, per interfacciarsi con Microsoft Exchange, attraverso service providers MAPI forniti con Outlook.

## Specifiche protocollo MAPI/RPC

Microsoft ha reso disponibili tutte le specifiche del protocollo di comunicazione MAPI/RPC protocol.
"MAPI protocol" è il protocollo di dialogo MAPI/RPC. A volte Microsoft lo ha anche chiamato "Exchange RPC" e "Outlook-Exchange Transport Protocol".

## Implementazioni Open Source di MAPI

Fino a poco tempo fa le implementazioni Open Source di MAPI sono state scarse. Ma ci sono almeno tre progetti open source che stanno lavorando per implementare il protocollo MAPI in librerie free open source software (FOSS) per l'utilizzo in altri applicativi open source. Questo elenco include il progetto OpenMapi project, il MAPI4Linux di Zarafa (anche questo parte di OpenMapi) e libmapi, sub-progetto di OpenChange project, che è utilizzato in un altro sottoprogetto OpenChange chiamato Evolution-MAPI. Evolution-MAPI è un fornitore di connessioni che può essere installato all'interno del popolare client open source groupware Evolution.