Verschieben der Mails aus dem Root Ordner in den Posteingang

In Microsoft Outlook gibt es seit Office 2007 die Funktion „Outlook Today“. Diese Ansicht erscheint standardmäßig, wenn das E-Mail-Postfach auswählt wird und bietet eine Zusammenfassung über den aktuellen Tag. Wenn dieses Feature aktiviert ist, ist es nicht möglich, E-Mails in das Wurzelverzeichnis des Postfachs zu verschieben. Ist das Feature jedoch deaktiviert, oder werden alternative E-Mail Clients verwendet, ist das Verschieben problemlos möglich. Dies kann zu Problemen führen, da diese Mails mit aktiviertem Outlook-Today nicht angezeigt werden.

Bei vielen Unternehmen werden E-Mails ebenfalls automatisch von einem System eingelesen und in einer Datenbank bereitgestellt. Dies ist insbesondere bei Helpdesks der Fall.

Wenn ein Mitarbeiter eine Anfrage in der persönlichen Mailbox empfängt, wird diese dann beispielsweise in den Posteingang der Support Mailbox verschoben, sodass diese vom System eingelesen werden kann.

Falls der Mitarbeiter Outlook Today deaktiviert hat, oder einen alternativen Client verwendet, kann es passieren, dass die E-Mail versehentlich in das Wurzelverzeichnis statt in den Posteingang verschoben wird. Manche Systeme unterstützen die Abfrage des Root-Ordners jedoch nicht, wodurch E-Mails vergessen werden können.

Dabei kann ein Skript, welches auf einem Outlook Client läuft, Abhilfe schaffen.

Dieses sieht nach, ob sich E-Mails im Root-Ordner befinden und verschiebt diese dann in den Posteingang, sodass das System, welches keine Root-Abfrage unterstützt, trotzdem die E-Mail einlesen kann.

Ein Skript, welches diese Funktion unterstützt, könnte so aussehen:

$mailboxName = 'Name des Postfachs'
//Verbinde mit dem Outlook-Client und mit den Ordnern
$outlook = New-Object -comobject outlook.application
$mapi = $outlook.GetNamespace('MAPI')
$store = $mapi.Stores[$mailboxName]
$root = $store.GetRootFolder()
$inbox = $store.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox)
//Verschiebe jede E-Mail des Root-Ordners in den Posteingang
$root.Items | ForEach-Object

Dieses Skript könnte dann beispielsweise auf einer Maschine jede 5 Minuten ausgeführt werden.