Exchange Transport Moderation

Diese Seite habe ich schon 2011 erstellt aber vergessen einzubinden. das ist erst 2020 erfolgt, als ich eine andere ähnliche Seite erstellt habe.

Exchange Online

Ich habe die Bilder von Exchange 2010 hier nicht aktualisiert. Bei Exchange 2013/2016/2019 finden Sie die gleiche Funktion im Exchange Control Panel:

Die Einrichtung per Browser ist sehr einfach. Sie bestimmen wie bisher das Kriterium, wann diese Regel aktiviert wird, z.B. eine Mail an einen besonderen Empfänger oder Verteiler:

Und definieren dann, wer diese Mail freigeben soll. Das kann der Manager des Absenders sein oder ein statisch vorgegebener Empfänger.

Exchange 2010 MMC

In Exchange 2010 ist diese Funktion über die MMC erreichbar. Der Verwaltung der Regeln erfolgt z.B. über die Exchange Management Console in den globalen Transporteinstellungen:

Im Bereich der "Aktion" kann eine freie Adresse oder der Manager des Absenders als Moderator bestimmt werden.

Technisch leitet Exchange diese Mails dann in ein spezielles Postfach, wo diese Mails erst mal liegen bleiben.

Approval Message

Exchange sendet dann eine spezielle Nachricht an den Moderator.

Abhängig von der Antwort wird dann eine Ablehnung oder Zustimmung an die besondere "Arbitration Mailbox" gesendet. Alle drei Nachrichten sind anhand der Nachrichtenklasse und der Icons gut zu sehen. Auf dem Bild ist die Genehmigungsanforderung markiert und darüber die Ablehnung sichtbar.

Ich habe alle Mails in einen Ordner gelegt. Normalerweise wird die Genehmigungsanfrage nach der Verarbeitung gelöscht und die Antwort liegt in "Gesendete Objekte"

Interne Funktionsweise

Die interne Funktion der Moderation ist von Microsoft in den Exchange Anleitungen sehr anschaulich beschrieben, so dass ich hier keine weiteren Worte verlieren will. Das folgende Bild zeigt den logischen Ablauf:

Moderated transport message flow
Quelle: understanding Moderated Transport (http://technet.microsoft.com/en-us/library/dd297936.aspx)

Allerdings fehlt in dem Bild die Stelle, an der die Transportebene per "Categorizer" die Mails aufteilt, wenn je Empfänger unterschiedliche Regeln angewendet werden müssen.

Message Tracking

Wenn Exchange Mails überträgt, dann schlägt sich das natürlich im Message Tracking nieder. Hier ein Auszug einer moderierten Mail:

11:09:27 Die Mail wird vom Store empfangen und durchläuft die Transport Regeln
11:09:28 Der Approval-Prozess sendet die Genehmigungsmail, die im Postfach des Moderators landet
11:10:56 Die Genehmigung geht ein.
11:10:58 Die Verarbeitung wurde erkannt und die Mails wird weiter geroutet.
11:11:07 Die Mail verlässt das unternehmen per SMTP

Es ist also recht einfach auch über das Message Tracking entsprechende Werte über den Einsatz der Moderation zu ermitteln.

Programmieren

Eine aktuelle Kundenanfrage hat mich auf das Problem hingewiesen, dass der Exchange Transport Mails mit gemischten Empfängern aufteilt. Hier ein Beispiel:

Regel: Mails von Intern nach Extern werden durch einen Moderator freigegeben

  • Fall1: Mail von Intern nach Intern
    Die Mails werden wie erwartet direkt zugestellt
  • Fall2: Mail von Intern nach Extern
    Diese Mails werden wie erwartet dem Moderator vorgelegt.
  • Fall3: Mail von Intern an zwei Empfänger von denen einer intern und einer extern ist
    Der Categorizer trennt die Mails auf, da er die unterschiedlichen Regeln erkennt und stellt die interne Mail sofort zu und leitet die Mails nach Extern in die Arbitration-Mailbox und wartet auf die Bestätigung durch den Moderator.

Bei dem dritten Fall stört es natürlich, dass der interne Empfänger quasi davon ausgeht, dass die Mail nicht nur ihn sondern auch zum externen Empfänger unterwegs ist. Wünschenswert wäre in diesem Fall natürlich, dass die Mail insgesamt beim Moderator liegt. Das Verhalten ist aber auch so beschrieben:

Handling Multiple Moderated Recipients
 
It's possible to send a message to a group of recipients that includes both moderated recipients and recipients that aren't moderated. In this case, a separate approval process occurs für each moderated recipient.
Consider a message that's sent to 12 recipients, one of which is a moderated distribution group. The categorizer splits this message into two messages. One message is delivered immediately to the 11 recipients that aren't moderated, and the second message is submitted to the approval process für the moderated distribution group.
If a message is intended für more than one moderated recipient, a separate copy is created für each moderated recipient and is submitted to the approval process.
Quelle: „Understanding Moderated Transport“ http://technet.microsoft.com/en-us/library/dd297936.aspx

Eine Lösung mit Bordmitteln scheint es hierzu nicht zu geben. Bislang fallen mir nur zwei Optionen ein:

  • Transport Agent
    Ein eigener TransportAgent könnte erkennen, ob eine Mail externe und interne Empfänger enthält und dann die Mail z.B.: mit einem Kennzeichen im Header versehen. Die weiterhin einzurichtende Transportregel für die Moderation könnte dann auf dieses Attribut wirken und damit die Auftrennung durch den Categorizer eventuell umgehen.

Der Versuch, Mails an externe Empfänger über die eingebauten Transportregeln erst mit einem Kennzeichen zu belegen und dann anhand des Kennzeichens zu moderieren, wird vom Categorizer wohl durchschaut. Also könnte es nur gehen, wenn eine Transportregel das so macht, dass Exchange es nicht "versteht", was passiert.

  • "Auto Moderation Accept Agent"
    Alternativ könnte man alle Elemente über die Moderation leiten und ein Agent überwacht das Moderator-Postfach um entsprechend der Kriterien die Mails automatisch zu bestätigen oder dem Moderator übrig zu lassen. Nachteilig wäre hier, dass für jede Mail von Exchange noch eine Moderator-Mail und Bestätigung generiert wird, d.h. das Volumen sich mindestens verdreifacht.

Eine fertige Lösung habe ich noch nicht.

Weitere Links