FromModify Sink (Exchange 2000/2003)

Lösungen für Exchange 2007 finden sie am Ende dieser Seite.

Dieser Beispielsink zeigt die Möglichkeiten, ausgehende Mails beim Versand zu verändern. Dieses Beispiel deckt dabei zwei Funktionen ab:

  • Displayname verbergen
    Sie können in Exchange abschalten, dass der Displayname nach extern übertragen wird. Dies funktioniert aber nur, wenn die Mail per MAPI erstellt wird. Die Einstellung im Systemmanager greift nicht, wenn die Mail z.B. per OWA oder ActiveSync eingestellt wird. Dies kann dann nur durch eine Änderung der Mail auf einem zweiten SMTP-Server erfolgen.
  • Absenderadresse ersetzen (SendAs)
    Bei der Änderung der FROM-Adresse kann das Skript natürlich auch gleich noch die Absenderadresse komplett umdrehen. Wenn Sie z.B. die Postfächer "support1" bis "support9" haben, dann ersetzt das Skript diese durch die generische Adresse "support". Damit senden alle diese Personen immer mit der Gruppenadresse, ohne langwierig mit den verschiedenen Optionen von Senden als umgehen zu müssen.

Das Musterskript prüft einfach nur die FROM-Adresse der empfangenen Mails.. Es muss daher auf einem zweiten virtuellen SMTP-Server laufen. Der SMTP-Server, mit welchem Exchange die Mails versendet, erlaubt keine Änderung des MAPI-Inhalts per VBScript.
Siehe dazu auch SMTP-EventSink

Unterstützung durch Net at Work:
Für individuelle Anpassungen können Sie gerne auf die Dienste von Net at Work zurückgreifen.

Das Skript ist ein Muster und funktioniert in einer TestUmgebung fehlerfrei. Zur Funktion in einer produktiven Umgebung würde ich persönlich eine Fehlerbehandlung addieren und Performancetests durchführen wollen.

Download

Das folgende Archiv enthält den Code des SMTP EventSinks und zwei Batchfiles zur Installation und Deinstallation. Das VBScript muss jedoch angepasst werden !!!

frommodify.1.0.zip

Ich gehe nicht davon aus, dass meine Annahmen zur Streichung des Displaynamens oder ersetzen des Absenders auch in ihrem Fall zutreffend sind. Sie müssen daher anpassen:

  • SMTP Instanz
    Wenn Sie mehrere virtuelle SMTP-Server haben, dann müssen Sie die "richtige" Instanz in den beiden Batches ändern.
  • Option Displayname
    Das Skript entfernt von der Absendermailadresse den Displaynamen. Wenn Sie dies nicht möchten, sollten Sie den entsprechenden Codeteil auskommentieren.
  • Option Adressumschreibung
    Auch das Ersetzen von bestimmten Absenderadressen durch eine andere Adresse müssen Sie vor dem Einsatz anpassen, da Sie sicher nicht mit der Domäne "msxfaq.de" ihr Mails versenden.
  • Pfade
    Das Skript ist so ausgelegt, dass es nach C:\FromModify abgelegt wird. Ist ihr Programmverzeichnis ein anderes, dann müssen Sie die Pfad in den Dateien entsprechend anpassen.
  • Optimierung auf "FROM"
    Wenn Sie sowieso nur eine bestimmte Gruppe von Absendern verarbeiten wollen, dann können Sie bei der Registrierung des Eventsink schon auf diese Absender z.B. mit der Option "MAILFROM=Support*@firma.de" filtern.

Insofern sollten Sie keine Angst vor VBScript haben.

Debugging

Die Aktivität des Sinks kann in einer Protokolldatei nachgelesen werden, die der Sink im angegebenen Verzeichnis ablegt. Kontrollieren Sie hier die gewünschte Funktion und reduzieren Sie später die Debugausgaben, um Performance und Plattenplatz zu sparen.

Hier ist gut zu sehen, mit welchen Adressen die Mails durch den SMTP-Server geroutet und welche Veränderungen vorgenommen werden.

Weitere Verbesserungen

Neben den schon genannten Erweiterungen wären noch denkbar:

  • AD-Lookup
    Das generelle Ersetzen des Displaynamens könnte über eine Gruppenabfrage im Active Directory sicher individueller gelöst werden.
  • COM statt VBScript
    Aus Aspekten der Performance wäre eine Lösung als COM-Komponente auf jeden Fall vorzuziehen. In dem Fall könnte der Sink auch "Cacheble" sein, so dass die CPU-Belastung weiter sinkt und eventuell zusätzliche Abfragen aus dem AD nicht jedes Mal erfolgen müsste.

Adress Rewriting mit Exchange 2007

Exchange 2007 unterstützt keine "SMTP Sinks" mehr, sondern diese Funktion wird nun mittels "Transport Agenten" bereit gestellt. Allerdings gibt es zwar einen "Adress Rewriting Agent", der aber nur auf der "Edge-Rolle" zur Verfügung steht.

Insofern bleibt hier nur eine Drittsoftware oder ein eigener Transport Agent. Zum Glück gibt es hierzu einige Links im Internet und sogar fertige beispiele

Weitere Links