Я пытаюсь подсчитать общее количество писем, отправленных и полученных с определенной учетной записи электронной почты за период.Код работает, но дает немного завышенный результат.Пожалуйста, посмотрите на приведенный ниже код, если он может дать правильный результат.Я знаю, что могу использовать $ Allmessages только один раз без фильтрации по SenderAddress, а затем по RecipientAddress, но он работает вечно без фильтрации.
$Allmessages_sent = @()
$P = 1
do
{
$pagedmessages_sent = Get-MessageTrace -SenderAddress $emailgroup -StartDate $StartDate -EndDate $EndDate -PageSize 1000 -Page $p `
| Select Received,SenderAddress,RecipientAddress,Size
$Allmessages_sent += $pagedmessages_sent
$p = $p + 1
}
until ($pagedmessages_sent -eq $null)
$senderssorted = 0;
$senderssorted = $Allmessages_sent |group senderaddress | select @{n="SentCount";e={$_.Count}}
$Allmessages_rcvd = @()
$P_ = 1
do
{
$pagedmessages_rcvd = Get-MessageTrace -RecipientAddress $emailgroup -StartDate $StartDate -EndDate $EndDate -PageSize 1000 -Page $p_ `
| Select Received,SenderAddress,RecipientAddress,Size
$Allmessages_rcvd += $pagedmessages_rcvd
$p_ = $p_ + 1
}
until ($pagedmessages_rcvd -eq $null)
$recipientsorted = 0;
$recipientsorted = $Allmessages_rcvd |group recipientaddress | select @{n="ReceivedCount";e={$_.Count}};
$totalSent = 0;
$totalRsvd = 0;
$totalSent = $senderssorted.Sentcount;
$totalRsvd = $recipientsorted.ReceivedCount;
$arrayResult = @();
$arrayResult += $totalSent;
$arrayResult += $totalRsvd
Write-Host "Sent: " $arrayResult[0];
Write-Host "Received: " $arrayResult[1];
Спасибо