MAPI over HTTP

Seit Exchange 2013 können sich Outlook-Clients über das Messaging Application Programming Interface (MAPI) over HTTP Protokoll mit dem Exchange Server verbinden. Zuvor wurde dafür Remote Procedure Call (RPC) over HTTP, auch Outlook Anywhere genannt, verwendet. Doch wozu ist ein neues Kommunikationsprotokoll nötig? Welche Systeme unterstützen es? Und wie kann man einen einzelnen Client auf RPC/HTTP zurückstellen?

Das Protokoll RPC/HTTP arbeitet mit doppelt verpackten Paketen. Wie die Grafik auf der linken Seite zeigt, wird ein RPC-Paket, ob von Client zu Server oder umgekehrt, zuerst als HTTP(S)-Paket verpackt und anschließend an die Gegenseite gesendet. Dort musst das HTTP(S)-Paket entpackt und als RPC an die Anwendung, also Exchange bzw. Mailclient, weitergeleitet werden. Für diese Verarbeitung ist ein RPC-Proxy auf Seiten des Servers notwendig, welcher im Wesentlichen als dll-Datei im virtuellen Verzeichnis des Internet Information Services (IIS) implementiert wurde.
Das neue MAPI over HTTP umgeht sowohl RPC als auch den dazu notwendigen Proxy. Zudem enfällt die Schachtelung, so kommunizieren Client und Server direkt über MAPI.

MAPI over HTTP neu.jpg

Schon hier ist ersichtlich, welche Probleme RPC/HTTP mit sich brachte:

  • Client und Server kommunizieren über „Prozeduraufrufe“, welche in RPC verpackt sind. Um dies auch über das Internet hinweg möglich zu machen, werden diese in HTTP(S)-Pakete verpackt. Um nicht die Gesamtstruktur ändern zu müssen, wurde seit Exchange 2003 über die RPC-Kommunikation schlichtweg ein HTTP-Tunnel errichtet. Bei MAPI over HTTP werden die Aufrufe direkt in HTTP(S)-Pakete gepackt, wodurch das doppelte Verpacken erspart bleibt.

  • Bei der Kommunikation werden mehrere verschiedene Ports benötigt, und zwar die Ports 135, 2101, 2103 und 2105 [1]. Dazu muss der RPC-Proxy Daten, welche vom Client kommen, nach dem Entpacken an den richtigen Mail-Server weiterleiten. Dies skaliert bei vielen Anfragen nicht, wodurch der Proxy zum Engpass wird.

  • Verbindungen, welche unterbrochen werden, müssen unter erhöhtem Aufwand neu etabliert werden. Da immer mehr Handys und Tablets in Benutzung sind und diese einen Schlafmodus und ähnliches unterstützen, sind solche Verbindungsunterbrechungen häufig. MAPI over HTTP ermöglicht einen verlängerten HTTP-Request, welcher weitaus einfacher erneuert werden kann als RPC/HTTP.

Zusammenfassend lässt sich sagen, dass der Umstieg von RPC/HTTP auf MAPI over HTTP Performanzverbesserung sowohl für den Server, als auch für das Netzwerk garantiert. Dies zeigt sich vor allem bei der Anmeldung in Oulook. Die Ladezeiten können durch die Verwendung von MAPI over HTTP stark reduziert werden.
Nicht jede Outlook Version unterstützt MAPI over HTTP, welches erst seit Outlook 2010 (mit Updates KB2878264 01/2015 und KB2956191 04/2015) zur Verfügung steht. Wie schon erwähnt unterstützen bis jetzt nur Exchange 2013 und Exchange 2016 das Protokoll. Alle älteren Exchange-Versionen kommunizieren über RPC/HTTP bzw. direkt über RPC (In der Tabelle MAPI/RPC). Die nachfolgende Tabelle zeigt noch einmal alle kompatiblen Exchange- und Outlook-Versionen und die unterstützten Protokolle.

RPCHTTP.jpg

MAPI over HTTP ist seit Outlook 2016 standardmäßig auf jedem Client aktiviert. Will man nun seinen Client doch auf RPC/HTTP zurückstellen, geht dies in folgenden Schritten.

  • Schließen Sie zunächst Outlook.

  • Mit Windowstaste + R lässt sich das Ausführen-Fenster öffnen und mit regedit.exe der Registry-Editor als Administrator öffnen.

  • Navigieren Sie anschließend nach HKEY_CURRENT_USER\Software\Microsoft\Exchange

  • In diesem Ordner muss nun
    DWORD = MapiHttpDisabled mit dem Wert
    Value = 1
    erstellt werden.

  • Anschließend kann Outlook gestartet werden und der Client verbindet sich über RPC/HTTP mit dem Exchange Server.

Wie in diesem Beitrag hervorgehoben, wird MAPI over HTTP das neue Kommunikationsprotokoll zwischen Server und Client, welches RPC/HTTP letztendlich ersetzen soll. Bereits seit November 2017 wird RPC/HTTP nicht mehr für Outlook 365 unterstützt [2]. Die Cloud-Server werden Clients nur noch die Kommunikation über MAPI over HTTP gestatten. Aus diesem und den oben genannten Gründen, sollte das weitere Verwenden von RPC/HTTP gut überlegt sein.

[1] https://support.microsoft.com/en-us/help/178517/tcp-ports--udp-ports--and-rpc-ports-that-are-used-by-message-queuing
[2] https://support.microsoft.com/de-de/help/3201590/rpc-over-http-reaches-end-of-support-in-office-365-on-october-31-2017