如何导出Office 365中的完整SMTP日志

在Office 365中,是否可以导出SMTP日志? 也许在PowerShell或任何其他方式。

我的目标是全面了解从特定域发送到特定域的所有邮件。

通过结合在网上find的两个脚本,我设法弄明白了。

这是做这个工作的脚本。

 #Accept input parameters Param( [Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)] [string] $Office365Username, [Parameter(Position=1, Mandatory=$true, ValueFromPipeline=$true)] [string] $Office365Password ) $OutputFile = "DetailedMessageStats.csv" Write-Host "Connecting to Office 365 as $Office365Username..." #Connect to Office 365 $SecurePassword = $Office365Password | ConvertTo-SecureString -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Office365Username, $SecurePassword $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell/" -Credential $cred -Authentication Basic -AllowRedirection Import-PSSession $session -AllowClobber Write-Host "Collecting Recipients..." #Collect all recipients from Office 365 $Recipients = Get-Recipient -ResultSize Unlimited | select PrimarySMTPAddress $MailTraffic = @{} foreach($Recipient in $Recipients) { $MailTraffic[$Recipient.PrimarySMTPAddress.ToLower()] = @{} } $Recipients = $null #Collect Message Tracking Logs (These are broken into "pages" in Office 365 so we need to collect them all with a loop) $Messages = $null $Page = 1 do { Write-Host "Collecting Message Tracking - Page $Page..." $CurrMessages = Get-MessageTrace -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) -PageSize 5000 -Page $Page| Select Received,*Address,*IP,Subject,Status,Size if ($CurrMessages -ne $null) { $CurrMessages | Export-Csv C:\FILE-$PAGE.csv -NoTypeInformation } $Page++ $Messages += $CurrMessages } until ($CurrMessages -eq $null) Remove-PSSession $session