Ostatnio pisaliśmy o tym jak znaleźć wszystkich odbiorców danego emaila:
Exchange MessageTrackingLogs wyszukanie wszystkich odbiorców emaila
Teraz przedstawimy skrypt który pomoże nam wygenerować statystykę wysyłanych emaili.
Niemniej jednak nie interesuje nas ilość wszystkich wysyłanych emaili, ich rozmiar, tylko skupimy się na emailach wysyłanych poza naszą organizację Exchange i uzyskamy informację o tym z jakich adresów zostały wysłane, z jakim tematem, ile było tych emaili i do ilu odbiorców zostały przesłane.
Skrypt ten umożliwia uzyskanie informacji o adresach email które wysyłają najwięcej wiadomości na zewnątrz.
Jego działanie oparte jest na sprawdzeniu logów transportowych (TransportLogs) umieszczonych na serwerach Exchange z rolami Hub Transport.
Po otrzymaniu wyników skryptu możemy skorzystać ze skryptu z poprzedniego posta i dowiedzieć się do kogo została wysłana wiadomość.
Poniżej przedstawiamy kolejne fragmenty skryptu z opisem działania:
Pierwszy fragment zawiera:
- definicje obiektów wynikowych z raportami
- ścieżek do plików przechowujących wszystkie otrzymane wyniki
- ustawienia do wysłania raportu emailem
- $MAX_Recipients – liczba odbiorców powyżej której wygenerowany zostanie email z raportem
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 Set-AdServerSettings -ViewEntireForest $True Function New-Array {,$args} $Report = New-Array $Report_SMTP = New-Array $Rep_sum = New-Array $Rep_SMTP_sum = New-Array $data = $($((get-date).adddays(-1)).ToString('yyyy.MM.dd')) #paths to output files $Out_Rep_file = "d:\Scripts\Logs\Stats\msg_stat_out_$data.csv" $Out_Rep_sum_file = "d:\Scripts\Logs\Stats\msg_stat_out_sum_$data.csv" #files with emails with smtp traffic $Out_Rep_SMTP_file = "d:\Scripts\Logs\Stats\msg_stat_smtp_out_$data.csv" $Out_Rep_SMTP_sum_file = "d:\Scripts\Logs\Stats\msg_stat_smtp_out_sum_$data.csv" #file with report attached to email (emails recipients grater than $MAX_Recipients) $Email_HTML_File = "d:\Scripts\Logs\Stats\Report_outgoing_emails_$data.htm" #settings for email with report $mail_from = "exchangereport@domain.com" $mail_to = "admin@domain.com" $mail_smtp_host = "smtpserver.domain.local" $mail_subject = "Report outgoing emails $data" #variable that defines the threshold for recipients to write to email report $MAX_Recipients = 100