Website-Icon Frankys Web

Exchange 2010/2013: Postfach auf ungelesene Nachrichten überwachen (EWS)

Dieses kleine Script überwacht des Posteingang eines Postfachs auf ungelesene Nachrichten. Ich habe es erstellt um Dienstpostfächer zu überwachen, aus denen andere Programme automatisch Mails verarbeiten. Mit ein paar kleinen Anpassungen lässt sich daraus auch ein Monitor für PRTG oder Solarwinds erstellen.

#————————————————————————————–
# Postfach auf ungelesene Mails prüfen
# www.frankysweb.de
#
# by Frank Zöchling
# Version 0.1
#
#————————————————————————————–

$mailboxName = „journal@frankysweb.de“ #zu überprüfende Mailbox
$maxUnreadAge = „20“ #Wert in Minuten (1 Tag = 1440 Minuten)

#EWS Verbindung herstellen

Add-Type -Path „C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll“
$version = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2
$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService($version)
$service.UseDefaultCredentials = $true
$service.AutodiscoverUrl($mailboxName)

$inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)

#Mails abrufen und auswerten

$today = get-date
$maxagetime = $today.AddMinutes(-$maxUnreadAge)

$mails = $inbox.FindItems(100)

$unreadmails = $mails | where {$_.isRead -match „False“}
$unreadmailscount = $unreadmails | measure-object | foreach-object {$_.Count}
$unreadmailsmaxagecount = $unreadmails | where {$_.DateTimeReceived -lt $maxagetime} | measure-object | foreach-object {$_.Count}

write-host „Anzahl ungelesene E-Mails: $unreadmailscount“
write-host „Anzahl ungelesene E-Mails älter als $maxUnreadAge Minuten: $unreadmailsmaxagecount“

Um das Script aufzuführen ist die EWS API 2.0 erforderlich, die API kann hier runtergeladen werden:

http://www.microsoft.com/en-us/download/details.aspx?id=35371

Die mobile Version verlassen