Exchange 2013/2016邮件队列重播操作

简介:



     我们经常遇到需要将传输队列中的邮件进行重播的情况,下面简单介绍如何操作:

       Exchange传输邮件是先应用程序将需要发送的邮件进行一个格式转换,转换为eml格式的文本文件,然后又Pickup分拣程序)将.eml文件放置在C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Pickup目录下,然后又SMTP入站服务器将邮件提交道SMTP服务数据库中进行传输。需要注意eml文件必须满足如下要求:

1)、仅仅只有扩展名称为.eml的文件才能被ExchangePickup程序处理。

2)、eml文件中To,cc,Bcc列必须有正确的SMTP地址格式。(也就是收件人地址或抄送地址必须是正确的SMTP地址)

3)、eml文件中FromSender列必须有一个SMTP地址。

4)、对应明文邮件,正文和邮件头之间必须有空格。(MIME的加密邮件没有这个要求)

5)、eml文件中邮件头大小最大为64KB,并且要求收件人不要超过100人。

一般通过命令AssembleMessage导出的eml格式都是符合要求的。下面是ExchangeSMTP服务器工作过程。

clip_image001

 

下面介绍Exchange 2013/2016如何重播队列操作方法。

1、通过命令获取特定队列信息。

Get-Queue -Filter {MessageCount -gt 10 }   获取消息数量大于10的队列。

clip_image002

 

2、使用命令将需要进行操作队列进行搁置。(要导出队列数据必须将该队列中的所有传输中的邮件的状态设置为搁置。不然会收到如下错误信息)

Get-Message -Queue  CLDB02\7    

clip_image003

 

3、使用如下命令将需要重播队列中的邮件导出为eml格式。(具体可以参考:

$theMessages=@(Get-Message -Queue  CLlDB02\7)

 

$theMessages | foreach {$i++; Export-Message $_.Identity | AssembleMessage –path ("c:\3\"+$i+".eml")}

 

命令:  AssembleMessage  是必须的,必须有该命令对导出的文件二进制流进行转换和筛选。

 

4、将导出的.eml文件复制到Pickup目录下(获取Pickup目录位置可以通过命令:Get-TransportService -Identity clmaildb01 | fl name,*pickup*,查看PickupDirectoryPath的目录位置),即可进行邮件队列重播,例如:C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Pickup。

 

 

 

关于导出邮件队列数据可以参考:https://technet.microsoft.com/en-us/library/aa998625(v=exchg.160).aspx

 

导出服务器上某个域名邮件队列邮件:

Get-Message -Queue "Server1\contoso.com" -ResultSize Unlimited | ForEach-Object {Suspend-Message $_.Identity -Confirm:$False; $Temp="C:\ExportFolder\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

导出某个服务器上所有的邮件队列:

Get-Message -Filter {<MessageFilter>} [-Server <ServerIdentity>] -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}




本文转自 jialt 51CTO博客,原文链接:http://blog.51cto.com/jialt/1846818

相关文章
|
消息中间件 数据安全/隐私保护
RabbitMQ 清除全部队列及消息
安装RabbitMQ后可访问:http://{rabbitmq安装IP}:15672使用(默认的是帐号guest,密码guest。此账号只能在安装RabbitMQ的机器上登录,无法远程访问登录。) 远程访问登录,可以使用自己创建的帐号,给与对应的管理员权限即可。
|
4月前
|
消息中间件
【面试问题】如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
【1月更文挑战第27天】【面试问题】如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
|
12月前
|
消息中间件 Java 数据库
RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)
RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)
313 0
RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)
|
消息中间件 网络协议 Java
RabbitMQ——消息手动应答、队列/消息持久化、不公平分发、预取值的概念理解及应用举例
RabbitMQ——消息手动应答、队列/消息持久化、不公平分发、预取值的概念理解及应用举例
RabbitMQ——消息手动应答、队列/消息持久化、不公平分发、预取值的概念理解及应用举例
|
C# 数据安全/隐私保护 移动开发