我们在企业日产工作中,Exchange邮件是大家使用频率很高的应用,在日常的使用中,经常会由于操作的失误或者其他原因,导致邮件误发或者邮件流查询的一些问题。这个时候就会找到IT部门的同事寻求帮助,那么今天我们就来看看如何针对这些问题,来进行邮件系统日志的查看及管理。
首先,如果我们企业内部存在像“梭子鱼”这样的反垃圾邮件智能网关的话,问题就比较好解决,可以通过这些设备的邮件日志查询等功能,直截了当的看到邮件流的走向和详细信息(如下图)。
如果企业内部没有这类反垃圾邮件网关设备的话,我们就只有通过Exchange 自带“工具箱”中的一些功能进行基础的查询。
这些功能在Exchange2013中更加弱化,而且筛选条件也很复杂,操作不方便,今天我们着重讲的是通过EMS命令行模式来查看和管理这些日志。
1. 我们先群发一封测试邮件,收件有人三个。然后分别登录三个用户的邮箱看到是否都收到了这封邮件。
2. 以管理员身份打开EMS。
接下来我们就来对不同的场景进行操作
1.查看邮件服务器上某个时间段内的所有邮件信息:
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/6/2015 8:40AM" -End "3/6/2015 1:50PM"
2. 查看邮件服务器上某个时间段内由具体的某个人所发送的所有邮件详细信息:
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/6/2015 8:40AM" -End "3/6/2015 1:50PM" –Sender majy@corp.com
通过上述命令可以列出用户在此时间段的所有邮件来往信息。
如果我们在这条命令的后面加个 |fl 来进行详细查询的话,则会将上面列出来的所有邮件,每一封进行详细展示,如下:
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/6/2015 8:40AM" -End "3/6/2015 1:50PM" –Sender majy@corp.com |fl
从上面我们可以看到,包括发送人从哪台客户端,客户端IP,发送给谁,甚至是直接发送还是抄送、密送都查的出来,非常详细。
3. 查询发送失败的邮件
有些用户经常会反应发送邮件失败,想查询一下日志,看看到底是什么原因,那么我们运用一下命令:
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/6/2015 8:40AM" -End "3/6/2015 2:50PM" -EventId "Fail" -Sender wenyy@corp.com
4. 删除指定的某一封邮件
有时候,用户误发错了一封邮件(如下图)
希望我们能帮他们在服务器上直接删除掉,我们就可以使用下面的命令。
首先给自己的管理员权限加上一个“邮箱导入导出”的角色权限。
New-ManagementRoleAssignment -Role "mailbox import export" -User lyncadmin
注:该命令运行完毕之后,必须重启EMS,不然后续操作会报错,找不到Search-mailbox的命令
然后使用下面命令删除用户“文一羽”邮箱中的“发送错误的邮件”这封测试邮件
Get-Mailbox | Search-Mailbox -Identity wenyy -searchquery "主题:发送错误的邮件" -deletecontent
到用户“文一羽”的邮箱里面再来看看这封邮件,已经被删除消失了。(无论对方是否已经打开过这封邮件,都会被删除)
5. 删除一封群发邮件
Get-Mailbox –ResultSize unlimited | Search-Mailbox -searchquery "主题:测试邮件1" –deletecontent
选择【A】全是,则会搜索所有的用户邮箱,并匹配主题名,然后进行删除。
这封群发邮件就都被删除了。
6. 通过时间筛选删除邮件
Search-Mailbox -Identity majy -SearchQuery "发送时间:<2015/01/31"-deletecontent
Search-Mailbox -Identity majy -SearchQuery "发送时间:=2015/01/31"-deletecontent
Search-Mailbox -Identity majy -SearchQuery "发送时间:>2015/01/31"-deletecontent
Search-Mailbox -Identity majy -SearchQuery "发送时间:<2015/01/21 and 2015/01/31" –deletecontent