【问题标题】:Using EWS API to search through different users mailboxes使用 EWS API 搜索不同用户的邮箱
【发布时间】:2010-12-09 12:58:00
【问题描述】:

我们正在开发一个模块,其主要目标是跟踪和收集有关损坏检查(保险市场)的信息。每个案例都有一个代码(例如 L000525)。每个案例可以由几个人管理。与特定案例相关的所有电子邮件的主题中都包含案例代码。

我们要做的是收集并显示与每个特定案例相关的传入和发送电子邮件。

这个想法是任何用户都可以打开一个“案例管理”窗口,选择一个特定的案例,然后获取所有相关信息(当然包括电子邮件)。

我们必须在大约 20 个用户的邮箱中找到电子邮件。所以问题是:

  • 哪种方法更好?会不会耗费大量时间和资源?

我们是 Exchange 世界的新手,因此我们正在考虑 Exchange 模拟,但我们完全不确定。该模块是在 Silverlight 3、WCF、SQL Server + Exchange 2007 中开发的。

【问题讨论】:

    标签: exchange-server exchangewebservices


    【解决方案1】:

    如果用于连接 EWS 的凭据有权访问用户的邮箱,那么您应该能够执行以下操作:

    var service = new ExchangeService();
    service.Credentials = new WebCredentials("user_with_access@example.com", "password");
    service.AutodiscoverUrl("a_valid_user@example.com");
    
    var userMailbox = new Mailbox("target_user@example.com");
    var folderId = new FolderId(WellKnownFolderName.Inbox, userMailbox);
    
    var itemView = new ItemView(20);   // page size
    var userItems = service.FindItems(folderId, itemView);
    
    foreach (var item in userItems)
    {
        // do something with item (nb: it might not be a message)
    }
    

    就是这样。哇,我的第一个 SO 答案!

    【讨论】:

    • 这绝对帮助了我。我需要通过一次登录从共享日历中获取所有约会的列表。事实证明,除了为我的登录设置每个日历的“审阅者”权限外,我只需要这样做。
    • 在 Exchange 2013 (Office 365) 中,用户至少需要“完整详细信息”权限。 Limited 或 Availability Only 将不起作用。
    • 该类被称为 FolderId 而不是 FolderID,其余的工作都很好。谢谢!
    • 太棒了!如何对日历执行此操作的示例(非常相似)是independentsoft.de/exchangewebservices/tutorial-2.1/…
    • 对于一个只给出一个答案的人来说,他确实做到了。
    【解决方案2】:

    @smcintosh 上面所做的完整工作示例在这里:Office365 API - Admin accessing another users/room's calendar events。它是一个完整的 java 类,应该编译和运行并访问房间资源日历。祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-01
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      相关资源
      最近更新 更多