【问题标题】:Retrieving ALL emails for ALL accounts from exchange server从 Exchange 服务器检索所有帐户的所有电子邮件
【发布时间】:2012-04-25 12:37:57
【问题描述】:

有没有办法从 Exchange 服务器检索/下载 ALL 用户帐户的 ALL 电子邮件?粗略的方法是遍历每个用户并使用 IMAP 分别检索那里的电子邮件。但是我认为这将非常低效且耗时。

我知道,我们可以实时使用日记功能来获取所有电子邮件,但我如何才能访问服务器上 所有 帐户的所有 现有电子邮件?

谢谢!

【问题讨论】:

  • “低效且耗时” - 你真的认为你正在做的是一个common活动,会被优化吗?
  • 我知道这不是一种常见的活动,如果我找不到更好的方法,我可能最终会这样做。但是,我试图从专家那里了解是否有更好的优化方法。

标签: exchange-server imap


【解决方案1】:

没有本地函数可以做到这一点。 IMAP 也不会为您提供完全保真度。您可以使用 Exchange Web 服务的模拟来单独访问每个邮箱。如果您需要 PST,请使用 Exchange 2007 上的 Export-Mailbox 或 Exchange 2010 上的 New-MailboxExportRequest 提供的解决方案。

【讨论】:

    【解决方案2】:

    我不确定它是否是您需要的。但是,如果您在本地连接到 Exchange 服务器,则导出也符合您的需要。有了 Exchange 2007,您就有了这样的要求,也许他们在 2010 年改变了其中的一些要求。

    • 首先您需要从 32 位 Windows 客户端执行导出脚本。
    • 已安装 Exchange(32 位)工具
    • 当然是 Powershell。
    • 已安装 Outlook。

    导出所有用户邮箱的脚本


    $users = Get-Mailbox | select alias
        
    foreach ($user in $users)
    {
    # Just info
    Get-MailboxStatistics -id $user.alias | select-object DisplayName,@{name='TotalItemSize(MB)';expression={$_.TotalItemSize/1MB}};
    # Give rights to each mailbox, you can avoid this after first time
    Add-MailboxPermission -Identity $user.alias -User "domain\adminuser" -AccessRights FullAccess;
    # Export to the folder you want (should be mapped if remote)
    Export-Mailbox -PSTFolderPath P:\psts\ -id $user.usuarios -Confirm:$False
    
    }
    

    【讨论】:

    • 感谢 Alfredo,让我试一试,然后告诉你进展如何。顺便说一句,您认为 AV 解决方案如何做到这一点?我假设他们还需要访问服务器上的所有电子邮件才能扫描和报告。
    • AV 解决方案插入 Exchange 中的特殊病毒扫描 API,使他们能够访问这些数据。
    • 谢谢布赖恩,这是很好的信息。从技术上讲,我可以使用相同的 API 来访问所有电子邮件,尽管我实际上不会扫描它们。那行得通吗?你知道我在哪里可以找到它的规格吗?
    猜你喜欢
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 2011-11-28
    • 2011-06-24
    • 1970-01-01
    • 2019-07-29
    相关资源
    最近更新 更多