Exchange MessageTrackingLogs wyszukanie wszystkich odbiorców emaila

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.

 

Print Friendly
Otagowany , , , , , .Dodaj do zakładek permalink.

One Response to Exchange MessageTrackingLogs wyszukanie wszystkich odbiorców emaila

  1. Pingback:Exchange 2010 statystyka wysyłanych emaili – messagetrackinglog - ExchangeBlog

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>