Статистика входящих писем по обслуживаемым доменам
Есть ли возможность получить статистику входящих писем по разным обслуживаемым доменам в организации?
|
Запустите в EMS скрипт, заменив даты. Он посчитает, единственное, если письмо отправлено было на получателей в двух авторитативных доменах, то объем такого письма посчитается два раза. Скрипт предполагает, что почты вы получаете черех роль HUB транспорт и считает все SMTP подключения (в том числе почтовых клиентов).
Код:
$startdate = (Get-date 01.03.2016)
$enddate = (Get-date 02.03.2016)
$servers = Get-TransportServer
$domains = Get-AcceptedDomain | Where-Object {$_.DomainType -eq 'Authoritative'}
$logs = @()
#Получение логов
ForEach ($srv in $servers) {
Write-Host "Подсчет логов на $($srv.Name)"
$logs += Get-MessageTrackingLog -Start $startdate -End $enddate -ResulTSize Unlimited -eventid RECEIVE | `
Where-Object {$_.EventId -eq 'RECEIVE' -and $_.Source -eq 'SMTP'}| Select-Object MessageId,Timestamp,TotalBytes,Recipients
}
$result = @()
$domresult = New-Object System.Object
ForEach ($domain in $domains) {
Write-Host "Оценка домена $($domain.DomainName)"
$sum = ($logs | Where-Object {$_.recipients -match "$($domain.DomainName)"} | Measure-Object -Sum TotalBytes).sum/1024/1024
$domresult| Add-Member -MemberType NoteProperty -Name 'Domain' -Value "$($domain.DomainName)"
$domresult| Add-Member -MemberType NoteProperty -Name 'Size (MB)' -Value $sum
$result += $domresult
$domresult = New-Object System.Object
}
Out-Host -InputObject $result
|
Скрипт отработал, единственное, показал объем писем за указанный период. Какой атрибут надо добавить чтобы ещё и количество писем показывал?
По логике, надо count добавлять, или что-то наподобие....
|
Код:
$startdate = (Get-date 01.03.2016)
$enddate = (Get-date 02.03.2016)
$servers = Get-TransportServer
$domains = Get-AcceptedDomain | Where-Object {$_.DomainType -eq 'Authoritative'}
$logs = @()
#Получение логов
ForEach ($srv in $servers) {
Write-Host "Подсчет логов на $($srv.Name)"
$logs += Get-MessageTrackingLog -Start $startdate -End $enddate -ResulTSize Unlimited -eventid RECEIVE | `
Where-Object {$_.EventId -eq 'RECEIVE' -and $_.Source -eq 'SMTP'}| Select-Object MessageId,Timestamp,TotalBytes,Recipients
}
$result = @()
$domresult = New-Object System.Object
ForEach ($domain in $domains) {
Write-Host "Оценка домена $($domain.DomainName)"
$sum = ($logs | Where-Object {$_.recipients -match "$($domain.DomainName)"} | Measure-Object).count
$domresult| Add-Member -MemberType NoteProperty -Name 'Domain' -Value "$($domain.DomainName)"
$domresult| Add-Member -MemberType NoteProperty -Name 'Count' -Value $sum
$result += $domresult
$domresult = New-Object System.Object
}
Out-Host -InputObject $result
Вот так :)
|
Время: 00:52.
© OSzone.net 2001-