企业内部邮件系统在使用过程中难免会接收到一些垃圾邮件,这些垃圾邮件也占用一定的用户邮箱资源,本文档介绍使用exchange management shell工具批量删除exchange server内部的这些垃圾邮件。

示例:
示例1:
本示例搜索 Joe Healy 的邮箱,并将搜索结果复制到 JoeHealy-ProjectHamilton 文件夹中的 DiscoveryMailbox 中
Search-Mailbox -Identity "Joe Healy" -SearchQuery "Subject:Project Hamilton" -TargetMailbox "DiscoveryMailbox" -TargetFolder "JoeHealy-ProjectHamilton" -LogLevel Full

示例2:
本示例搜索 April Stewart 的邮箱中主题包含“Your bank statement”短语的邮件,并将结果记录在管理员邮箱的 SearchAndDeleteLog 文件夹中。邮件将不复制到目标邮箱。
Search-Mailbox -Identity "April Stewart" -SearchQuery 'Subject:"Your bank statement"' -TargetMailbox "administrator" -TargetFolder "SearchAndDeleteLog" -LogOnly -LogLevel Full

示例3:
本示例搜索 April Stewart 的邮箱中主题包含“Your bank statement”短语的邮件,然后从源邮箱中删除这些邮件。您必须分配有“邮箱导入导出”管理角色才能使用 DeleteContent 开关。

Search-Mailbox -Identity "April Stewart" -SearchQuery 'Subject:"Your bank statement"' -DeleteContent

以上是微软官方针对exchange2013给出的关于search-mailbox使用的一些示例,我们根据示例进行一些变更以满足我们企业的关于垃圾邮件整理的需求。

需求举例:
1、 从企业内部某个邮箱中删除发件人为“请转相关部门”的邮件,这里以testzhang用户为例。

打开exchange management shell,使用以下命令
Search-Mailbox -Identity "testzhang" -SearchQuery 'from:"请转相关部门"' -TargetMailbox "administrator" -TargetFolder "SearchAndDeleteLog" -LogOnly -LogLevel Full
该命令的意思:搜索testzhang用户邮箱中所有发件人包含“请转相关部门”关键字的邮件,并且将搜索结果发送到administrator邮箱中的SearchAndDeleteLog文件夹。(如果要搜索主题为特定关键字则将from参数改为subject)
可以看到,搜索到3封类似的邮件,我们可以打开administrator邮箱查看具体搜索结果。
企业内部exchange邮件系统垃圾邮件清理
注意,以上命令刚执行完时以下红框开始是failed状态,需要等待几分钟,具体时间根据搜索量而定,刷新该邮箱界面之后状态变为succeeded时表明搜索完成。具体搜索结果在search resu~.zip这个附件里,我们下载下来进行查看。
企业内部exchange邮件系统垃圾邮件清理
解压附件,以文本模式打开该文件
企业内部exchange邮件系统垃圾邮件清理
若想以excel打开该csv文档,需要更改下模式,否则会乱码,点击文件,另存为,更改编码方式为ANSI,保存并替换原文件
再次用excel打开,可以看到,发件人为:请转相关部门的用户给testzhang发送了三封邮件
企业内部exchange邮件系统垃圾邮件清理
确认完以上为垃圾邮件之后即可将这些垃圾邮件通过以下命令删除。
Search-Mailbox -Identity "testzhang" -SearchQuery 'from:"请转相关部门"' –DeleteContent

企业内部exchange邮件系统垃圾邮件清理
可以通过以上搜索命令再次搜索该邮箱,确认已全部清除“请转相关部门邮件”
2、 从企业内部所有邮箱中删除发件人为“请转相关部门”的邮件。
在exchange management shell运行如下命令
Get-Mailbox | Search-Mailbox -SearchQuery 'from:"请转相关部门"' -TargetMailbox "administrator" -TargetFolder "SearchAndDeletelog" -LogOnly -LogLevel full
该命令的意思:搜索企业内所有邮箱,发件人为“请转相关部门”的邮件,并将搜索结果发送到administrator邮箱
这条命令因为搜索的是所有用户的邮箱,所以时间可能需要5-10分钟,具体根据用户量而定。
企业内部exchange邮件系统垃圾邮件清理
搜索过程……会一个个邮箱搜索过去
企业内部exchange邮件系统垃圾邮件清理
显示0B的意思是该邮箱没有符合条件的垃圾邮件,等待搜索完成,到administrator邮箱查看具体搜索结果。因搜索量比较大从failed状态变为succeeded状态可能需要点时间。
企业内部exchange邮件系统垃圾邮件清理
可以看到如下搜索结果
企业内部exchange邮件系统垃圾邮件清理
目前搜索到4千多条记录,若记录超过10000条,需根据命令提示使用new-mailboxsearch命令
企业内部exchange邮件系统垃圾邮件清理
企业内部exchange邮件系统垃圾邮件清理
注意:需要在确认以上邮件全部为垃圾邮件之后,才可以用以下命令对这些垃圾邮件进行清除,以免误删正常邮件。
Get-Mailbox | Search-Mailbox -SearchQuery 'from:"请转相关部门"' –DeleteContent
清除根据邮件数量也需要一定时间。