Wege und API's
Ehe Sie generell mit Exchange und Outlook eine Lösung entwickeln wollen, müssen Sie selbst natürlich die verschiedenen Zugriffswege und API's kennen, damit Sie die richtige Schnittstelle nutzen.
What API should I be using for new Exchange 2007
development?
http://blogs.technet.com/b/exchange/archive/2007/06/04/439829.aspx
813349 Support policy for Microsoft Exchange APIs with the .NET Framework
applications
Exchange API-spotting Exchange Developer Roadmap
http://blogs.msdn.com/exchangedev/archive/2008/05/22/exchange-developer-roadmap.aspx
Planning for Internal and Third-Party Applications
http://technet.microsoft.com/en-us/library/ee861107.aspx
Ich habe hier einmal exemplarisch einige Wege zu den Daten in Exchange aufgeführt:

Einige Zugriffe erfolgen von einem Client oder anderen Diensten über das Netzwerk und einige Zugriffe sind nur auf dem Server selbst möglich, bzw. bei der Installation der Exchange Admin Tools teilweise auch remote nutzbar.
| Nummer | Beschreibung |
|---|---|
|
VBA |
Client:
Outlook
VBA Outlook selbst enthält die Komponenten von Visual Basic for Applications, mit denen Sie umfangreiche Lösungen mit Outlook entwickeln können. Voraussetzung für die Funktion ist aber ein gestartetes Outlook und die Nutzung von Funktionen, die durch Outlook oder den Anwender angestoßen werden. |
|
VBScript |
Client:
Outlook VBScript Mittels VBScript können Sie ebenfalls außerhalb von Outlook dennoch auf die Objekte in Outlook zugreifen. Das Outlook Objekt Modell erlaubt umfangreiche Zugriffe. Nur wenn Sie bestimmte Dinge verändern, schreiben oder senden wollen, kommt bei neueren Outlook Modellen eine Sicherheitswarnung. |
|
Formulare |
Client:
Outlook Formulare Weiterhin erlaubt Outlook in eigenen Formularen Code zu hinterlegen, um die Formulare "intelligent" zu gestalten. So können bestimmte Funktionen auf dem Client realisiert werden. Dies erfordert aber Outlook und unterstützt kein OWA oder andere Clients. |
|
DLL |
Outlook DLL Outlook selbst kann durch DLLs um Funktionen erweitert werden. Exchange selbst erweitert Outlook so um die Karteikarten bei Postfächern und Regeln. Microsoft Fax, diverse Telefoniedienste und andere Funktionen werden ähnlich nachgerüstet.
|
|
CDO/MAPI |
Server: CDO/CDOEX/CDOEXM/MAPI
Client:CDO und MAPI Auf dem Server gibt es neben der MAPI und WebDAV Schnittstelle auch die Option, per CDOEX und CDOEXM die Einstellungen der Benutzer und Server zu verändern. Besonders CDOEXM eignet sich wunderbar auch per VBScript um bestimmte administrative Tätigkeiten zu automatisieren. Siehe auch WSH - MBSIZE. Diese Schnittstelle ist auch auf dem Client verfügbar, wenn die Exchange Admin Tools installiert sind.
CDOEX ist seit Exchange 2007 "abgekündigt", d.h. es funktioniert noch
mit Exchange 2007 und die folgenden 10 Jahre aber darüber hinaus gibt es
keine Zusicherung mehr. |
|
WebDAV |
Client-Server: HTTP per
WebDAV. Um MAPI und all die Probleme zu umgehen gibt es mit Exchange 2000 und höher die Option per HTTP auf Inhalte zuzugreifen. Die meisten Anwender kennen den Zugriff nur als "Outlook Web Access", aber es ist ein universeller Weg, auf Content in Exchange zuzugreifen. WebDAV ist seit Exchange 2007 "abgekündigt", d.h. es
funktioniert noch mit Exchange 2007 und die folgenden 10 Jahre aber
darüber hinaus gibt es keine Zusicherung mehr. |
|
Webservice |
Erstmals mit Exchange 2007 gibt es auch eine echte "Webservice"-Schnittstelle auf die Exchange Datenbank. Diese wird z.B. von Outlook 2007 genutzt, die so die Frei/Belegt-Daten anderer Benutzer abfragt. |
|
LDAP ADSI |
Client-Server: AD mittels LDAP/ADSI Für den Zugriff auf die Verzeichnisinformationen eignet sich hingegen LDAP bzw. ADSI. Über diesen Weg können Sie auf die Adressbücher und Konfigurationsinformation der Exchange Organisation zugreifen. Allerdings ist damit kein Zugriff auf Inhalte in Postfächern oder gemeinsamen Ordnern (Auch keine Kontaktordner) möglich. LDAP/ADSI ist aber eine legitime Schnittstelle, um z.B.: Benutzer anzulegen, Verteiler zu pflegen etc. (Siehe auch WSH - GAL Anzeigename ändern, WSH - Benutzer mit Postfach anlegen und andere Beispiele. Aber auch der Zugriff per XML ist möglich. (Siehe http://www.Microsoft.com/windows2000/server/evaluation/news/bulletins/dsml.asp) |
|
Event |
Server: Event Service Skripte sind VB-Script Elemente, welche zwar mit Outlook erstellt und in einem Ordner abgelegt werden aber der Server interpretiert diese durch den Dienst Event Service, welche gestartet werden muss. Diese Schnittstelle ist bei Exchange 2000/2003 eigentlich eher aus Kompatibilitätsgründen zu Exchange 5.5 enthalten aber per Default nicht aktiviert. Als leistungsfähigere Alternative stehen EventSinks zur Verfügung |
|
SMTP |
SMTP Pickup und Port 25, CDONTS Auf jedem Windows 200x Server, auf dem ein Microsoft SMTP-Server installiert ist, können Nachrichten über Port 25 (z.B. mit Blat, über das Pickup Verzeichnis oder CDONTS versendet werden. Eingehende Nachrichten können über Transport Event Sinks und Protokoll Event Sinks (Server: EventSink) verarbeitet werden. |
|
|
Server ExOLEDB Exklusiv auf dem Exchange Server gibt es noch die OLEDB-Schnittstelle, die einen Datenbankähnlichen Zugriff auf Exchange Inhalte zulässt. Allerdings ist diese Funktion nur auf dem Exchange Server selbst verfügbar und kann nur auf Daten auf diesem Exchange Server zugreifen. ExOLEDB ist seit Exchange 2007 "abgekündigt", d.h. es
funktioniert noch mit Exchange 2007 und die folgenden 10 Jahre aber
darüber hinaus gibt es keine Zusicherung mehr. |
|
|
Server: EventSink EventSinks mehr als nur der Nachfolger des begrenzt einsetzbaren Server: Event Service. Sinks werden direkt von Store oder SMTP-Server gestartet und erlauben damit auch eine synchrone Verarbeitung. Diese Sinks erlauben eine komplette Modifikation jeder per SMTP ein oder ausgehenden Nachricht. Sie können hier z.B.: Virenscanner, Disclaimer, Spamfilter und vieles mehr realisieren. Siehe auch SMTP-EventSink, EventDisclaimer einfügen, MessageID-Fix und viele andere Beispiele |
|
Server: AVAPI |
AVAPI Diese Schnittstelle ist nicht öffentlich wird primär von Virenscannern genutzt. Siehe auch Virenschutz |
| Regeln | Regeln im Posteingang und Regeln auf öffentlichen Ordnern Diese Option, bestimmte Funktionen in Exchange und Outlook zu automatisieren ist keine Programmierung im engeren Sinne. Sie finden die Beschreibung hierzu auf Regeln |
| M: | Der Zugriff auf das "M:-Laufwerk" eines Servers sehe ich nicht als legitime Schnittstelle für Entwickler an, da dieser Zugriff mit zu vielen Problemen behaftet ist. Siehe dazu auch Laufwerk M:. |
| Connector | Noch nicht weiter beschrieben ist das Connector-API, mit der sich fremde Connectoren (FAX, SMS, SAP etc.) in Exchange mit einbinden können. |
| WMI | Mit Exchange 2000/2003 ist der Zugriff auf einige Einstellungen auch per WMI möglich. So können per WMI z.B. die Größe von Mailboxen, die Länge der Wartenschlangen und andere Daten abgefragt werden |
Ich hoffe diese kurze Einleitung hat ihnen einen Überblick über die verschiedenen Zugriffswege auf Exchange und Outlook gezeigt. Sie sollten auf jeden Fall mehrere Schnittstellen begutachten, um ihre Aufgabenstellung zu lösen.
Während jede API auf dem Client mehr oder minder Outlook und MAPI-Profile benötigt, sind ServerAPIs wie WebDAV oder ADSI sehr flexibel und leistungsfähig, aber eben auch näher am System. CDOEX und CDOEXM erlauben hier ein einfacheres Objektmodell, aber sind nur auf dem Server zu nutzen.
Microsoft Exchange Server
2007 Service Pack 1 (SP1) SDK December 2008
http://www.microsoft.com/downloads/details.aspx?FamilyID=47720d33-fa5a-4af4-a8eb-fa39695cbad1&displaylang=en
Kleine Geschichte der APIs
Ich versuche hier auf de MSXFAQ nur die APIs zu beschreiben, die aktuell und sinnvoll einzusetzen sind. Aber wenn Sie etwas in der Vergangenheit wühlen, dann werden Sie feststellen, dass seit Microsoft 3.0 jede Menge APIs den Weg bis zum heutigen Tag gepflastert haben
| Jahr | APIs Quelle |
Beschreibung |
|---|---|---|
| 1992 |
MS-Mail 3.0 |
Diese Schnittstelle wurde mit Microsoft Mail 3.0 erstmals veröffentlicht. Das war der Startschutz von MAPI und es was sicher nicht abzusehen, dass es so ein Langläufer wird. Damals gab es noch andere MAPI-Schnittstellen wie VIM (Vendor Independent Messaging von Lotus Notes, und CMC Common Messaging C??? von Novell/WordPerfect) |
| 1995 |
Windows95 |
Durch Windows 95 wurde auch der neue "Exchange Client" verfügbar, welcher nun der Nachfolger von MS-Mail sein sollte. Dieser Client wurde auch mit Exchange Server genutzt, ehe Outlook 97 dann den Wechsel bedeutet (Nicht mit dem Exchange Server) zu verwechseln. |
| 1996 |
Exchange 4.0 |
Exchange 4.0 hat nun auch im Backend die alte Microsoft Mail Datenbank (MAILDATA) ersetzt und entsprechend sowohl für den Server als auch auf dem Client neue APIs mitgebracht |
| 1997 |
Exchange 5.0 |
|
| 1997 |
Exchange 5.5 |
Exchange 5.5 hat Exchange weiter für das Internet geöffnet. Erstmals
konnte per "OWA" auf das Postfach zugegriffen werden. Zudem gab es nun auch den "Event Agent", welcher auf dem Server eingestellte Ordner überwachte und Skripte beim Eintreffen neuer Nachrichten ausführt. |
| 1997 |
Windows NT4 Option Pack |
Durch das Windows NT4 Option pack war es nun mit dem darin enthaltenen IIS4 und dem SMTP-Server möglich, auch Mails mit Windows zu verarbeiten. CDONTS war dazu die erste API, um Nachrichten auf dem Server zu senden |
| 1998 |
Exchange 5.5 SP1 |
|
| 2000 |
Exchange 5.5 |
In der Zeit hat sich Sybari den Grundstock für ihr Unternehmen
gelegt, indem Sie einen Weg gefunden haben, Viren in Exchange zu finden
und zu stoppen, ehe diese in der Datenbank landen. Erst durch die VSAPI, die Microsoft nachgereicht hat, konnten alle Hersteller dann über eine offizielle API gehen. |
| 2000 |
Exchange 2000 |
Das Jahr 2000 war auch der Start von Exchange 2000 und einer ganz
neuen Plattform für Nachrichten und Zusammenarbeit. Entsprechend gibt es
einen ganzen Satz neuer APIs die heute noch genutzt werden.
Einige hingegen werden eher selten eingesetzt, z.B.: die Queue Viewer API |
| 2000 |
Windows 2000 |
Durch die Installation von Windows 2000 und dem darin enthaltenen SMTP-Server kommen ebenfalls einige APIs mit, die auch in Exchange vorhanden sind. |
| 2001 |
Exchange 2000 |
|
| 2003 |
Exchange 2003 |
Im Hinblick auf APIs hat Exchange 2003 nicht viel Neuerungen mitgebracht. Es ist ja auch eher eine kleine aber wichtige Weiterentwicklung von Exchange 2000. |
Weitere Links
- Exchange Geschichte
-
Planning for Internal and Third-Party Applications
http://technet.microsoft.com/en-us/library/ee861107.aspx - What API should I be using for new Exchange 2007 development?
http://blogs.technet.com/b/exchange/archive/2007/06/04/439829.aspx -
Exchange API-spotting Exchange Developer Roadmap
http://blogs.msdn.com/exchangedev/archive/2008/05/22/exchange-developer-roadmap.aspx -
Microsoft Exchange Server 2007 Service Pack 1 (SP1) SDK December 2008
http://www.microsoft.com/downloads/details.aspx?FamilyID=47720d33-fa5a-4af4-a8eb-fa39695cbad1&displaylang=en -
Test and troubleshooting tools for various Exchange technologies
http://blogs.msdn.com/deva/archive/2008/10/29/test-and-troubleshooting-tools-for-various-exchange-technologies.aspx -
Planning for Internal and Third-Party Applications
http://technet.microsoft.com/en-us/library/ee861107.aspx - Exchange 2010 SP1 Web Services SDK
http://msdn.microsoft.com/en-us/library/dd877012(EXCHG.140).aspx - Exchange 2010 SP1 Transport Agents SDK
http://msdn.microsoft.com/en-us/library/dd877026(EXCHG.140).aspx - Exchange 2010 SP1 Outlook Web App Customization SDK
http://msdn.microsoft.com/en-us/library/ee693018(EXCHG.140).aspx - Exchange 2010 SP1 Backup and Restore SDK
http://msdn.microsoft.com/en-us/library/dd877010(EXCHG.140).aspx






