This post is also available in: angielski
Od czasu do czasu potrzebujemy otrzymać listę wszystkich osób do których został wysłany email o danym temacie.
Listę odbiorców w dość prosty sposób możemy uzyskać z transaction logs które umieszczone są na serwerach Exchange z rolami HT.
Oczywiście wcześniej musicie skonfigurować swoje środowisko tak aby logi te były przechowywane przez pare dni na serwerach.
Poniższy skrypt zwraca listę odbiorców, do których został wysłany email o temacie „Test email”, przy czym interesuje nas czas wysłania ostatni dzień.
Ilość dni określamy w zmiennej $DAYS natomiast poszukiwany temat wpisujemy do $SUBJECT.
Skrypt wygląda jak poniżej:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 Set-AdServerSettings -ViewEntireForest $True $DAYS = 1 $SUBJECT = "*Test email*" $msg = Get-TransportServer | Get-MessageTrackingLog -resultsize unlimited -start (get-date).adddays(-$DAYS) -end (get-date) -EventId Receive | ? {$_.source -eq "STOREDRIVER" -and $_.messagesubject -like $SUBJECT} | Select recipients foreach($email in $msg){ $tmp+= $email.recipients } $recipients = $tmp | group-object | select name Write-Host "Recipients: $($recipients.count)" Write-Host "Recipients list:" $recipients
Na początku przeszukujemy logi, wyszukując emaile o określonym temacie.
Następnie dla każdego emaila pobieramy odbiorców i przypisujemy ich do zmiennej $tmp.
Ponieważ odbiorcy mogą się czasami powtarzać, na koniec wykonujemy opcję grupowania po odbiorcach, co spowoduje pozostawienie jedynie unikatowych odbiorców.
Lista unikatowych odbiorców przypisywana jest do zmiennej $recipients
Aby dodatkowo zawęzić wyszukiwanie emaila możecie dodać również informacje przez kogo email był wysłany dodając:
$_.sender -like "user@domain.com"
czyli modyfikujemy warunek wyszukiwania tak aby miał postać:
{$_.sender -like "user@domain.com" -and $_.source -eq "STOREDRIVER" -and $_.messagesubject -like $SUBJECT}
Taki skrypt może się przydać w momencie kiedy ktoś nas poprosi o listę wszystkich odbiorców konkretnego emaila, gdzie będą uwzględnieni odbiorcy wewnętrzni jak i zewnętrzni.
Pingback:Exchange 2010 statystyka wysyłanych emaili – messagetrackinglog - ExchangeBlog