EventSink mit Single Server

Achtung:
Funktion ist nicht ohne Zusatzprodukt möglich, wenn per DNS versendet werden soll. Sie benötigen ausgehend einen Smarthost, z.B. den ihres Providers, einen Windows SMTP als Relay auf einem anderen Server (MSXFAQ.DE - WinSMTP als Relay) oder einen fremden SMTP-Relay (z.B. HMailserver)

Die Funktion eines SMTP-OnArrival-Sinks, wie er auf SMTP-EventSink beschrieben ist und von vielen der Tools auf der MSXFAQ genutzt wird, funktioniert nur, wenn die Mail per "SMTP" zugestellt wird. Wird eine Mail jedoch auf dem Server selbst von Exchange "erstellt", dann ist dies für den SMTP-Server kein "Arrival", und entsprechend startet der Sink nur komplett. Der Sink wird zwar gestartet aber über VBSCript  CDO kann die ausgehenden Mail nicht mehr verändert werden. Der Sink erhält nur eine Kopie der ausgehenden Mail, die zwar geändert aber nicht mehr zurück konvertiert wird. Nur wenn Sie ihren Sink als COM-DLL einbinden und nicht über die CDO-Message sondern die MAPI-Message gehen, können Sie auch hier Änderungen direkt vornehmen. Daher sind fast alle kommerziellen Sinks auch als COM+-DLL entwickelt.

Um auf auf einem einzelnen Server einen "OnArrival-Sink" nutzen zu können, müssen Sie daher zwei SMTP-Server so miteinander verschachteln, dass Exchange über einen SMTP-Connector und den einen virtuellen SMTP-Server die Mails zum zweiten SMTP-Server sendet, der die Mails nach der Verarbeitung weiter sendet.

Leider wird jeder virtuelle SMTP-Server, welcher auf einem Exchange Server eingerichtet wird, auch durch Exchange kontrolliert und die Konfiguration ist daher nicht unabhängig. Der ausgehende virtuelle SMTP-Server muss daher die Mail per Smarthost versenden z.B.

Die Konfiguration bezüglich Exchange sieht in aller Kürze wie folgt aus:

Kurzfassung

Hier die Kurzfassung der Konfiguration:

Achtung:
Funktion ist nicht ohne Zusatzprodukt möglich, wenn per DNS versendet werden soll. Sie benötigen ausgehend einen Smarthost, z.B. den ihres Providers, einen Windows SMTP als Relay auf einem anderen Server (MSXFAQ.DE - WinSMTP als Relay) oder einen fremden SMTP-Relay (z.B. HMailserver)

Jetzt können auch ausgehenden Nachrichten von MAPI-Clients über einen EventSink verändert werden.

Achtung:
Die müssen bei der Installation der EventSinks natürlich darauf achten, dass Sie die richtige Instanz verwenden..

Unterstützung durch Net at Work:
Diese Lösung funktioniert mit "einem" Exchange Server. Sobald Sie mehrere Exchange Server in einer Routinggruppe oder mehrere Standorte habe, müssen Sie die Konfiguration etwas anpassen. Ansonsten funktioniert das interne Routing nicht mehr korrekt. Wir helfen ihnen gerne bei der Ausarbeitung der Details in solchen Fällen.

Langfassung der Konfiguration

Hier ein Setup, welches auf meiner virtuellen Maschine mit einem einzelnen Server funktioniert. Auf diesem System teste ich meine Skripte. Schauen Sie erst einmal den Exchange System Manager an. Hier sehen Sie zwei virtuelle SMTP Server ("virtueller Standardserver für SMTP" und "EventSinkSMTP"). Weiterhin sehen Sie einen SMTP.Connector, welcher den sprechenden Namen "SMTP * -> 127.0.0.1:26" hat.

ESM Übersicht

Die Eigenschaften dieses SMTP-Connectors verraten, dass dieser Exchange anweist, alle Nachrichten an "[127.0.0.1]" zu senden und dazu den ersten virtuellen SMTP-Server zu verwenden.

SMTP-Connector

Bei diesem ersten virtuellen SMTP-Server ist nun abweichend konfiguriert, dass alle ausgehenden Verbindungen über Port 26 zu erfolgen haben

VSMTP1

Durch diesen Kniff sendet Exchange alle ausgehenden Mails an 127.0.0.1:26.

Die Konfiguration des virtuelen SMTP-Servers "EventSinkSMTP" ist nun so angepasst, dass dieser nicht mehr auf Port 25 lauscht, sondern eben auf Port 26 die Verbindungen annimmt.

SingleServerSink

Nun muss diesem SMTP-Server nur noch beigebracht werden, Wie er seine Nachrichten versenden. In meinem Beispiel lasse ich ihn die Nachrichten per Smarthost auf meinen SMTP-Server des Hosts senden.

Eventsink SMTP

Auf einem produktiven Server würden Sie hier dann z.B.: ein Relay in der DMZ oder den Smarthost ihres Providers angeben.

Keine Funktion ohne Smarthost !
Der zweite virtuelle SMTP-Server kann NICHT per DNS die Mails ins Internet versenden. Dann schlagen wieder die Exchange Erweiterungen zu, welche die Mails wieder in die Queues einstellen. Die Mails bleiben dann in der "Warteschlange für verzögerte Übermittlung" hängen.

Ausgehender Smarthost

Da sich Exchange 20007/2003 immer in den Windows SMTP-Service mit einklinkt, auch wenn kein SMTP-Connector dafür konfiguriert ist, funktioniert dies Kaskade auf einem Server immer nur, wenn der nächste Hop per "Smarthost" erreichbar ist. Dazu kann man aber leider keinen weiteren Windows SMTP-Server verwenden. Aber es ist kein Problem, einen der vielen verfügbaren freien SMTP-Server zu verwenden, die zum Teil nur sehr wenig Ressourcen benötigen. Eine Beschreibung hierzu habe ich mit dem HMailserver bereit gestellt.

Weitere Links

Keywords:SMTPSink SingleServer HowTo