[玩转系统] 创建过去 90 天的入站电子邮件流量报告
作者:精品下载站 日期:2024-12-14 04:11:56 浏览:13 分类:玩电脑
创建过去 90 天的入站电子邮件流量报告
历史搜索作业检索 10 天以上的消息跟踪数据
Facebook 群组中发布的看似简单的对话询问如何创建电子邮件流量报告,详细说明 Microsoft 365 租户在过去 90 天内收到的入站消息。报告应包含时间戳、发件人电子邮件地址以及邮件是否包含附件等信息。事实证明,对于这个请求不存在简单的解决方案。让我们探讨一下原因。
Exchange Online 仅将邮件跟踪数据保留在线十天。最多可以检索 90 天的邮件跟踪数据,但只能通过 Exchange 管理中心或 PowerShell 运行历史搜索来实现。
历史搜索意味着 Exchange Online 运行后台作业以从其邮件跟踪存储库检索数据。此过程可能需要十分钟到几个小时,具体取决于服务的当前负载。历史搜索最多可涵盖 100 个电子邮件地址的邮件数据,并最多返回 100,000 条记录。通常,人们搜索从邮箱(用户或共享)发送或接收的消息。本文介绍如何对从共享邮箱发送的电子邮件运行历史搜索。
为整个组织创建过去 90 天的报告可能意味着必须将处理分为多个作业,以确保为每个作业提交的地址数量为 100 或更少,并且该作业返回的记录少于 100,000 条。组织每天最多可以运行 250 次历史搜索。
创建历史搜索作业
任何解决方案都依赖于运行足够的历史搜索作业来检索搜索范围内所有 SMTP 地址的邮件跟踪数据。如果您想要为过去 90 天内的所有入站电子邮件创建报告,则需要查找外部人员可能使用的所有收件人地址,并将这些地址分为 100 个批次,然后提交进行处理。
例如,要检查所有邮箱,第一步是找到邮箱。如果存在超过 100 个,则将它们分成 100 个或更少的组。对于每个集合,提取其主 SMTP 地址并将其存储在数组中。例如,这些命令查找用户和共享邮箱并将每个邮箱的主 SMTP 地址存储在数组中:
[array]$Mailboxes = Get-ExoMailbox -RecipientTypeDetails UserMailbox, SharedMailbox -ResultSize Unlimited
[array]$RecipientAddresses = $Mailboxes.PrimarySMTPAddress
Exchange Online 支持启用邮件的对象的多个代理地址,这些对象可以使用任何 SMTP 代理地址接收电子邮件。如果要检查每个可能地址的入站消息,则必须提取每个对象的代理地址集并将所有地址存储在数组中。像这样的代码提取邮箱集的所有 SMTP 代理地址(使用上面的代码找到)并将它们存储在一个数组中:
[array]$MailboxProxyAddresses = $Mailboxes.EmailAddresses
[array]$MailboxAddresses = $Null
ForEach ($Address in $MailboxProxyAddresses) {
If (($Address.Split(':')[0]) -in 'smtp', 'SMTP') {
$SMTPAddress = $Address.SubString(5,$Address.Length-5)
$MailboxAddresses += $SMTPAddress
}
}
代理地址包括每个收件人为租户服务域获取的 MOERA(Microsoft 在线电子邮件路由地址)以及管理员分配给邮箱的任何附加地址。可以合理地预期代理地址的数量将是主 SMTP 地址数量的两到三倍。搜索所有 SMTP 代理地址而不是主 SMTP 地址会增加历史搜索作业的数量。
现在您知道要搜索哪些地址,您可以提交历史搜索作业来检索地址的数据。此代码提交历史搜索作业,以查找过去 90 天内 $RecipientAddresses 变量(数组)中所有地址的入站电子邮件。
[int]$i = 1
$StartDate = (Get-Date).AddDays(-90)
$ReportName = ("Historical Search from {0} Number {1} Submitted {2}" -f $StartDate, $i, (Get-Date -format g))
$Status = Start-HistoricalSearch -RecipientAddress $RecipientAddresses -StartDate $StartDate -EndDate (Get-Date) -ReportType MessageTrace -ReportTitle $ReportName -Direction Received -NotifyAddress [email protected]
您可以使用 Get-HistoricalSearch cmdlet 跟踪作业的进度:
Get-HistoricalSearch -JobId $Status.JobId | Format-Table JobId, Status, ReportTitle
JobId Status ReportTitle
----- ------ -----------
3b9847c0-b1c2-4603-b344-3095b2d6c044 NotStarted Historical Search from 28/07/2023 21:44:51 Number 1 Submitted 26/10/20…
如果您在提交作业时添加通知地址,则当作业完成时,Exchange Online 会向该地址发送电子邮件。显然,您必须将可搜索地址集分成 100 个或更少的批次,并为每个批次提交历史搜索作业。
下载电子邮件流量报告的数据
最终,所有历史搜索作业都将完成,作业提取的消息跟踪数据也将准备就绪。您必须先从 Exchange 管理中心的“邮件跟踪”部分下载该数据,然后才能使用该数据。在“可下载报告”选项卡下,您将找到历史搜索作业的列表,并可以检查每个作业的详细信息(图 1)。当作业状态为“完成”时,会出现一个下载报告的选项。连接到 Azure 来获取数据可能需要一些时间,数据会下载为 Unicode 格式的 CSV 文件。
作业完成时发送的通知消息还包括下载数据文件的链接(图 2)。
根据历史邮件跟踪数据创建电子邮件流量报告
如果您必须将处理拆分为多个作业,则必须下载每个作业的文件。为了更方便地处理文件,我将它们移动到特定的文件夹。然后,任务是编写一个 PowerShell 脚本来循环遍历文件,从每个文件中提取消息跟踪数据,并将数据组合成一个数据集进行分析。
我编写的用于处理消息跟踪文件的脚本可从 GitHub 获取。处理完成后,包含从历史跟踪文件中提取的数据的 PowerShell 列表对象(称为 $Report)可供分析。最初的请求是创建一个报告,列出时间戳、发件人以及邮件是否有附件。邮件跟踪信息不包括电子邮件带有附件时的指示。可以假设任何字节大小超过 100,000 的消息都有附件,但考虑到电子邮件中嵌入图形的大小,这是一个很大的假设。
除了附件之外,该脚本还可以生成包含所请求信息的报告。图 3 显示了通过 Out-GridView cmdlet 传输的信息作为脚本输出的示例。
关键是,一旦脚本生成了数据,就可以使用您认为最好的任何工具将其分割成您想要的任何内容。有些人会将数据导入 Power BI 以使用其可视化功能。其他人会很高兴使用简单的 PowerShell 命令来创建不同的统计数据。例如,这些命令对文件中的发件人电子邮件地址和发件人域进行分组,以报告最常见的发件人和发件人域:
$Report | Group-Object Sender -NoElement | Sort-Object Count -Descending | Select-Object -First 10 | Format-Table Name, count
$Report | Group-Object Sender_Domain -NoElement | Sort-Object Count -Descending | Select-Object -First 10 | Format-Table Name, count
Name Count
---- -----
gmail.com 730
microsoft.com 620
yandex.com 508
practical365.com 272
linkedin.com 234
yahoo.com 224
yammer.com 205
lists.irishtimes.com 182
quest.com 174
email.teams.microsoft.com 147
利用 PowerShell 的强大功能
在此过程中所证明的是,尽管 Microsoft 有限制,但仍可以检索和分析大量历史消息跟踪数据。所需要的只是计划。之后,PowerShell将提交历史消息跟踪作业并处理这些作业找到的信息。您如何处理结果取决于您。
为了强调 PowerShell 在处理消息跟踪数据时的有用性,这里还有一些其他文章可供阅读。
- 如何运行在线消息跟踪。
- 如何运行历史消息跟踪。
- 使用消息跟踪数据来找出用户发送模式。
- 使用邮件跟踪数据报告发送给外部收件人的电子邮件。
- 查找从特定域传递到租户中收件人的邮件。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag