Gelesen/Ungelesen-Informationen pro Benutzer für diesen Ordner erhalten

Eine immer wieder auftretende Frage bei der Nutzung von Öffentlichen Ordnern eines Microsoft Exchange Servers ist die Option ”Gelesen/Ungelesen-Informationen pro Benutzer für diesen Ordner erhalten” . Anwender möchten darüber oft eine Funktion abbilden, mit der Nachrichten, die an eine allgemeine Firmenadresse wie info@firma.tld gerichtet sind, zentral empfangen und durch mehrere Personen bearbeitet werden sollen. Wenn mehrere Personen für die Bearbeitung der eingehenden Nachrichten zuständig sind, soll dabei eine Nachricht bei *allen* Anwendern automatisch als gelesen markiert werden, wenn *ein* Benutzer die Nachricht gelesen hat.

Allgemeine_Eigenschaften

Wenn man den deutschen Wortlaut nicht so genau nimmt, entsteht leicht der Eindruck, dass diese Konfigurationsoption genau dafür gedacht ist. Man geht dann davon aus, dass das Deaktivieren dieser Funktion implizit bedeutet, dass damit diese Informationen nicht mehr nur für jeden Benutzer allein, sondern jetzt für alle Anwender des Ordners sichtbar sind.

Als Nächstes stellt man aber fest, dass Exchange sich anders als erwartet verhält. Alle neuen Nachrichten sind jetzt immer als ungelesen markiert. Bisherige Nachrichten behalten ihren bis dahin vorhandenen Status. Selbst wenn man sie absichtlich als gelesen oder ungelesen markieren möchte, passiert genau nichts.

Der erste Lösungsgedanke ist dann meistens, dass es an fehlenden Berechtigungen liegt. Selbst wenn Benutzer Stufe 8 als Berechtigung erhalten, ändert sich an dem Verhalten nichts. Was steckt nun dahinter?

Wenn man die Bezeichnung dieser Option im Original nachliest, wird der Hintergrund klarer: “Maintain per-user read and unread information for this folder” . Es ist eine Missinterpretation der Übersetzung: Entweder bekommt man selbst *seine* Gelesen/Ungelesen-Informationen als Benutzer für *sich* zu sehen oder nicht. Es handelt sich dabei um keinen Schalter für alle Anwender.

Der Exchange Server schaltet dann den sogenannten EventSync ganz aus und der Status des Objektes verändert sich nach dem Öffnen gar nicht mehr. Im Microsoft Hilfe & Support-Artikel Public Folder Slowness in Folders with Thousands of Messages ist der Hintergrund dieser Option genauer beschrieben:

"The Exchange Server information store maintains data for every client regarding the read or unread status of every message. This per-user read/unread processing can cause operations to appear slow when the number of messages in the public folder is very large.

Microsoft recognizes the need for disabling per-user read/unread processing for specific folders in certain circumstances. We have modified Microsoft Exchange Server 5.5 so that it is possible to programmatically disable this processing on a particular folder.”

Was kann man nun tun, um eine solche Funktion trotzdem zu implementieren? Mein erster Gedanke wäre natürlich ein CRM-System. Man kommt aber mit Boardmitteln beim Exchange Server auch schon ein ganzes Stück weiter.

  1. Kategorien
    Man kann die Ansicht des öffentlichen Ordners nach Kategorien einstellen. Jeder Mitarbeiter, der eine E-Mail liest (und damit bearbeitet), zieht sie als ersten Schritt einfach auf das Kürzel seiner Kategorie. Kategorien sind benutzerübergreifend im öffentlichen Ordner sichtbar. So werden alle E-Mails jeweils unter dem aktuellen Bearbeiter einsortiert. Noch unbearbeitete E-Mails stehen ganz oben. In Summe bleibt alles recht übersichtlich und der Aufwand hält sich sehr in Grenzen.
  2. Unterordner
    Man richtet einen Unterordner zu dem Ordner ein, in den die Benutzer alle E-Mails verschieben, die bereits bearbeitet wurden. Dann ist vollkommen klar, dass alle E-Mails, die noch im Hauptordner liegen, noch eines liebevollen Blickes bedürfen. Allerdings merkt man bei dieser Lösung nicht, wenn zwei Benutzer kurz hintereinander eine E-Mail lesen und sich des Problems annehmen. Während der erste schon an der Antwort schreibt, fängt der zweite gerade erst an, die E-Mail zu lesen. Möglicherweise erfolgt dann Arbeit doppelt.
  3. Postfach
    Wenn man an Stelle eines öffentlichen Ordners gleich ein gemeinsames Postfach nimmt, dann geht die Gelesen/Ungelesen-Funktion so wie gewünscht, weil die Information direkt im Postfach gespeichert wird.
  4. Scripting
    Man könnte ein kleines Skript schreiben, welches ein Feld 'Bearbeitungsstatus' mit einem Wert wie -1 füllt, sobald die E-Mail das erste Mal geöffnet wird. Anschließend erstellt man eine Ansicht für alle Anwender, die auf das Feld 'Bearbeitungsstatus' filtert, gruppiert oder formatiert. Wird allerdings das Element schon in der Vorschau gelesen und nicht geöffnet, ändert sich der 'Bearbeitungsstatus' durch das Skript natürlich nicht.

Zum Schluss verrate ich noch allen, denen das zu aufwendig ist, einen kleinen Trick: Man schaltet die obige Funktion aus, so dass die Information nicht mehr pro Benutzer gespeichert wird. Jetzt bleiben alle E-Mails als ungelesen markiert. Nun öffnet eine E-Mail und geht über den Menüpunkt “Bearbeiten” zu “Inhalt bearbeiten” . Danach speichert man sie (unverändert). Jetzt sollte man die E-Mail als gelesen im Ordner sehen. Diese Lösung stammt aus einem Support-Call bei Microsoft. Hier ein Auszug:

Basically - if the Read/Unread processing is turned off for a folder (checkbox unchecked in 2000 or the PR_DISABLE_PERUSER_READ PTag is set to True) then you will see that any messages going into that folder are always UNREAD. If you try to mark it as Read, or if you open the message and close it again, the message still shows as being Unread because the processing of whether or not the message is read or unread is effectively turned off. So - if there were previously existing messages in the folder BEFORE this flag was set and those messages were "Read", then they would still appears as Read and you would not be able to set them as Unread for the same reason. If a message is MODIFIED and saved back to the folder, then the message will go from being Unread to Read.