Exchange 2000/2003 Event Sinks

Ehe Sie über "Eventsinks" nachdenken, sollten Sie überlegen, welche der drei Wege für die der Richtige ist. Neben der Möglichkeit über einen Eventsink eine Nachricht zu verarbeiten, können Sie auch mit Regeln und mit Skripten eine Lösung schaffen.

Eventsinks sind Programme, welche in der Regel als DLLs vorliegen, d.h. kompiliert sind und in die Funktion von Exchange eingreifen um bestimmte Funktionen zu erweitern oder durchzuführen.

Exchange 2007 unterstützt weiterhin Store Events. Aber der Weg ist aufgezeichnet, dass langfristig dieser Weg nicht mehr verfügbar sein wird, da auch EXOLEDB abgekündigt ist. Alternative sind WebServices mit Notifications, die allerdings asynchron arbeiten.

Hierbei werden drei grundlegende Eventsinks unterschieden:

  • Transportevent
    (siehe auch SMTP-EventSink)
    Hierbei wird die Nachricht von dem Programm bei der Übertragung dem Eventsink zugewiesen und eventuell verändert. Dieser Weg eignet sich z.B.: zum Scannen nach Viren aber auch um z.B. einen Disclaimer an eine Nachricht anzuhängen, diese zu verschlüsseln oder anderweitig zu verändern. In der Regel werden alle Nachrichten durch den MTA damit verarbeitet. Bei mehreren Servern muss dieses Modul entsprechend mehrfach installiert werden.
  • Storeevent
    (Siehe auch Exchange 200x Storesink)
    Hierbei wird die Nachricht bei der Ablage, einer Veränderung oder Löschung im Informationsspeicher erst dem Eventsink zugeleitet. Damit sind ausgefeilte Aktionen möglich bis hin zum Verhindern einer Löschaktion.
  • Protokollevent
    (noch keine eigene Seite)
    Hiermit können die Protokollfunktionen erweitert werden. Typischerweise sind solche Eventsinks z.B.: beim SMTP-Dienst angebracht um das Protokoll SMTP zu erweitern. Auch der Exchange 2000 Dienst ist quasi nichts anderes als ein Eventsink für den Windows 2000 SMTP-Dienst. Denkbar sind hier z.B. Erweiterungen um IP-Adressen zu blockieren (ORDB etc.) oder andere Filter zu realisieren.

Je nach Eventsink gibt es untergliederungen, z.B. "OnSyncSave, OnDelete" und so weiter. Unterschieden wird auch nach synchronen und asynchronen Events, d.h. ob die Aktionen synchron (im Gleichtakt) laufen oder asynchron, d.h. eventuell erst nach einigen Minuten je nach Auslastung ausgeführt werden. Prozesse zur Indexfunktion könnten asynchron ablaufen, um die Belastung des Servers zu verteilen, während Programme, die beim Löschen oder Speichern von Objekten eine Aktion ausführen besser "synchron" laufen, d.h. das Objekt wird erst nach Durchlaufen des Eventsink abgelegt.

Weitere Links

Hier nur eine kleine Auswahl von Links. Die MSDN-Seite ist sicher die beste Quelle