如何从队列中导出邮件

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2012-05-23

本主题说明如何使用 Exchange 命令行管理程序在安装了 Microsoft Exchange Server 2007 集线器传输服务器角色或边缘传输服务器角色的计算机上将邮件从队列复制到指定的文件路径。不能使用 Exchange 队列查看器执行此任务。但在执行此任务之前,可以使用队列查看器查找、标识和挂起邮件。

将邮件从队列导出到文件时,不会从队列中删除邮件。将在指定位置中创建一份纯文本文件形式的邮件副本。可以在诸如文本编辑器或电子邮件客户端应用程序之类的应用程序中查看结果文件,也可以使用 Exchange 组织内外的任何其他集线器传输服务器或边缘传输服务器上的重播目录重新提交邮件文件。

开始之前

若要执行下列步骤,必须为您使用的帐户委派以下角色:

  • Exchange Server 管理员角色和目标服务器的本地 Administrators 组

若要在安装了边缘传输服务器角色的计算机上执行以下步骤,必须使用作为该计算机上的本地 Administrators 组成员的帐户进行登录。

有关权限、角色委派以及管理 Exchange Server 2007 所需权限的详细信息,请参阅权限注意事项

从队列中导出邮件之前,必须执行下列步骤:

  1. 验证与目标目录位置有关的以下信息:

    • 导出任何邮件之前,目标目录必须存在。系统不创建该目录。如果未指定绝对路径,则使用当前的 Exchange 命令行管理程序工作目录。

    • 该路经可以是 Exchange 2007 计算机上的本地路径,也可以是指向远程服务器上共享位置的通用命名约定 (UNC) 路径。

    • 帐户必须拥有对目标目录的写入权限。

  2. 找到并标识要导出的邮件。有关如何查看邮件的信息,请参阅如何查看邮件

  3. 挂起要导出的邮件,以防在导出过程中传递这些邮件。若要使导出过程成功,邮件必须处于挂起状态。可以从远程传递队列、邮箱传递队列、无法到达队列或带毒邮件队列导出邮件。带毒邮件队列中的邮件已处于挂起状态。不能挂起或导出提交队列中的邮件。有关如何挂起邮件的信息,请参阅如何挂起邮件

将排队的邮件导出到文件中

当计划将排队的邮件导出到文件中时,请考虑以下方面:

  • 从队列中导出邮件不会将邮件从队列中删除。如果导出邮件以进行检查,则可在随后恢复挂起的邮件以进行传递。有关如何恢复邮件的详细信息,请参阅如何恢复邮件。如果导出邮件,再使用重播目录重新提交这些邮件,则应删除挂起的邮件,以免重复传递邮件。有关如何从队列中删除邮件的详细信息,请参阅如何从队列中删除邮件

  • 可以通过指定文件名或路径和文件名,将单个邮件导出到文件中。指定文件名时,请确保包含 .eml 文件扩展名,以便可以通过电子邮件客户端应用程序轻松地打开文件,或由重播目录正确地处理文件。

  • 如果将已经存在的目录指定为导出路径,则可使用自动文件命名功能将多封邮件导出到文件中。如果目标目录已经存在,则每封邮件的文件名将自动设置为 InternalMessageID.eml。InternalMessageID 是由当前处理该邮件的 Exchange 2007 服务器分配的邮件标识符。

从特定的队列中导出特定的邮件

使用 Exchange 命令行管理程序将特定的邮件从特定的队列导出到文件

  • 运行以下命令:

    Export-Message -Identity <MessageIdentity> -Path <PathWithFileName>
    

    例如,若要将位于名为 Exchange01 的服务器上域“Contoso.com”的远程传递队列中的邮件(InternalMessageID 为 1234)的副本导出到路径“C:\Contoso Export\export.eml”,请运行以下命令:

    Export-Message -Identity ExchSrv1\contoso.com\1234 -Path "C:\Contoso Export\export.eml"
    

从特定的队列中导出所有邮件

使用 Exchange 命令行管理程序将特定队列中的所有邮件导出到目录

  • 运行以下命令:

    Get-Message -Queue "<QueueIdentity>" | Export-Message -Path "<LocalPath>"
    

    例如,若要将所有邮件的副本从名为 Exchange01 的服务器上的“Contoso.com”远程传递队列导出到本地计算机上的目录“C:\Contoso Export”,请运行以下命令:

    Get-Message -Queue "Exchange01\contoso.com" | Export-Message -Path "C:\Contoso Export"
    

从服务器上所有队列中导出特定的邮件

使用 Exchange 命令行管理程序将特定的邮件从服务器上的所有队列中导出到目录

  • 运行以下命令:

    Get-Message -Filter {<Property> -<Operator> "<Value>"} -Server "<ServerIdentity>" | foreach {Export-Message -Identity:$_.Identity -Path "<LocalPath>"}
    

    例如,若要将“Contoso.com”域中发件人的所有邮件的副本从名为 Exchange01 的服务器上的所有队列中导出到本地计算机上的目录“C:\Contoso Export”,请运行以下命令:

    Get-Message -Filter {FromAddress -like "@contoso.com"} -Server "Exchange01" | foreach {Export-Message -Identity:$_.Identity -Path:"C:\Contoso Export"}
    

有关语法和参数的详细信息,请参阅 Export-Message

有关如何使用 Exchange 命令行管理程序命令输出的详细信息,请参阅使用命令输出

详细信息

有关详细信息,请参阅使用 Exchange 命令行管理程序管理队列