Показать полную графическую версию : [решено] Статистика входящих писем по обслуживаемым доменам
meateron
29-02-2016, 15:13
Есть ли возможность получить статистику входящих писем по разным обслуживаемым доменам в организации?
ko4evneg
01-03-2016, 19:29
Запустите в 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
meateron
02-03-2016, 14:24
Скрипт отработал, единственное, показал объем писем за указанный период. Какой атрибут надо добавить чтобы ещё и количество писем показывал?
По логике, надо count добавлять, или что-то наподобие....
meateron
02-03-2016, 16:30
$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
Вот так :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.