使用EWS API搜索不同的用户邮箱

时间:2009-10-23 17:00:47

标签: exchange-server exchangewebservices

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

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

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

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

  • 哪种方法更好?它会消耗大量的时间和资源吗?

我们在Exchange世界中是新手,所以我们正在考虑Exchange模仿,但我们根本不确定。该模块是在Silverlight 3,WCF,SQL Server + Exchange 2007中开发的。

2 个答案:

答案 0 :(得分:54)

如果用于连接到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)
}

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

答案 1 :(得分:1)

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