Die Mail-Regel wird nicht auf bestimmte Nachrichten angewendet

968
HannesS

Wir betreiben eine Exchange 2013 / Outlook 2016-Umgebung (Office 365). Einige Nachrichten, vom System generierte Benachrichtigungen, werden von unseren Mail-Regeln nicht korrekt verarbeitet. Die Regeln sind serverseitige Regeln, die in OWA festgelegt sind. Postfach 1 ist ein persönliches Postfach des Benutzers, Postfach 2 ist ein gemeinsam genutztes Postfach, auf das dieser explizite Benutzer vollen Zugriff hat.

Regelpostfach 1:

Wenn der Betreff eine Zeichenfolge enthält, die Mail an das Postfach weiterleitet

Regelpostfach 2:

Wenn der Betreff eine Zeichenfolge enthält, verschieben Sie die Nachricht in den Ordner Ordner 1

string identifiziert die Nachricht anhand des Betreffs, in diesem Fall "Code 140". Wenn ich eine Nachricht von meinem Outlook-Client an die Mailbox 1 mit der Zeichenfolge schicke, wird sie einwandfrei verarbeitet - das Weiterleiten und Verschieben funktioniert.

Jede Nachricht mit demselben Betreff, die von einem automatisierten Benachrichtigungs-Webservice gesendet wird, wird von den Regeln nicht verarbeitet und verbleibt daher im Postfach 1, obwohl sie weitergeleitet und verschoben werden sollte. Diese Nachrichten werden in UTF-8 codiert - aber auch andere UTF-8-codierte Nachrichten werden verarbeitet, daher sollte dies nicht das Problem sein.

Die Regeln wurden mehrmals mit demselben Ergebnis gelöscht und erneut hinzugefügt. Der clientseitige Cache-Modus wurde zu Testzwecken deaktiviert, der Benutzer zieht es jedoch vor, dass er aktiviert wird, da er keinen Unterschied macht. Er ist in der aktuellen Konfiguration aktiv.

Ich habe die Nachrichtenköpfe einer Mail verglichen, die die Regeln auslöst, und eine, die nicht funktioniert. Die Subject-Eigenschaft ist identisch mit dem letzten Bit.

Wireshark-Trace einer nicht verarbeiteten Mail (POP3 vom externen Mailserver): Funktioniert nicht

Wireshark-Trace einer verarbeiteten Mail (POP3 vom externen Mailserver): Arbeiten

Powershell-Ausgabe bei der Suche nach Regeln:

[PS] C:\Windows\system32>Get-Mailbox | Where-Object {$_.Alias.Contains("username")} | Get-InboxRule -ErrorAction:SilentlyContinue | Where-Object {$_.Name.Contains("Code")} | select Description | fl  Description : Wenn die Nachricht folgende Bedingungen erfüllt: die Nachricht enthält bestimmte Wörter im Betreff: 'Code 140' Folgende Aktionen ausführen: die Nachricht in Ordner 'Online' verschieben und keine weiteren Regeln für diese Nachricht verarbeiten   Description : Wenn die Nachricht folgende Bedingungen erfüllt: die Nachricht enthält bestimmte Wörter im Betreff: 'Code 140' Folgende Aktionen ausführen: Nachricht an "'email@domain.de'" umleiten und keine weiteren Regeln für diese Nachricht verarbeiten 

Welches ist deutsch für vorwärts ("umleiten") und verschieben ("verschieben"). "Code140" ist der String, mit dem ich die Regel auslösen möchte. Wie oben erwähnt, ist nur eine Regel pro Postfach aktiv (Postfach 1 -> Weiterleiten an Postfach 2, Postfach 2 -> Verschieben / Sortieren im Ordner "Online").

Gibt es eine weitere Möglichkeit, dieses Problem zu beheben, da dies nur die vom System generierten E-Mails betrifft?

1
Haben Sie überprüft, dass die Regel selbst bei einer E-Mail ausgelöst wird und keinen bestimmten Absender oder Ähnliches enthält? Seth vor 7 Jahren 0
Ja, die Regel wird für alle Mails ausgelöst (die von 5-6 verschiedenen Konten zum Testen gesendet werden), nur nicht die, die ich möchte :-) Die Regel selbst enthält nur "Wenn Betreff enthält ..." als einzeiliges Kriterium (verifiziert mehrmals über OWA und PowerShell). Ich habe meinen Powershell-Code hinzugefügt, um die Regeln in der Frage zu überprüfen. HannesS vor 7 Jahren 0
Ich hätte darauf hingewiesen, dass die Regeln "keine weiteren Regeln für diese Nachricht verarbeiten" angeben, was bedeuten würde, dass die Verarbeitung nach der Verarbeitung einer der beiden Regeln enden würde. Sie haben jedoch angegeben, dass sie nicht ausgeführt werden. Erwägen Sie die Verwendung von 4 Leerzeichen / Tab anstelle von Anführungszeichen, damit `$ _` richtig verarbeitet wird. Hast du die anderen Regeln überprüft? Vielleicht stoppt man ja die Verarbeitung, wenn die Mail aus dem automatisierten System kommt? Seth vor 7 Jahren 0
Diese beiden Regeln, die mit dem PowerShell-Skript zurückgegeben werden, sind jeweils auf ein einzelnes Postfach festgelegt. Das bedeutet, dass für ein Postfach die Regel "Weiterleiten" gilt, für das andere die Regel "Verschieben". Sie werden nur in diesem Cmdlet angezeigt, da alle Postfächer abgefragt werden und bekomme jede Regel in jedes Postfach. Zu Testzwecken sind nur diese beiden Regeln für ihre jeweilige Mailbox aktiv (MB1 -> "Weiterleiten", MB2 -> "Verschieben"). Es sind keine anderen Regeln beteiligt / aktiv. HannesS vor 7 Jahren 2

0 Antworten auf die Frage