在EWS托管API中,您可以执行以下操作:
Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
inbox.FindItems(...)
或者你可以这样做:
service.FindItems(WellKnownFolderName.Inbox, filter, view);
如下所述:http://msdn.microsoft.com/en-us/library/exchange/dd633693(v=exchg.80).aspx
两种方法有什么区别?哪一个更受欢迎? (我认为你真的不需要绑定到文件夹?)
答案 0 :(得分:2)
Folder.Bind
允许您绑定所需的文件夹。如果您有权限,甚至可以绑定到其他用户的文件夹。或者在恢复FolderID后的任何文件夹(您可以将其用作参数)
例如,如果我是交换管理员,并且我想获得具有smtp地址“john.snow@mail.com”的用户的根文件夹,我会以这种方式绑定到该文件夹:
Folder FolderBind =
Folder.Bind(service, new FolderId
(WellKnownFolderName.MsgFolderRoot, "john.snow@mail.com));
一旦你将FolderBind加载了你想要的任何文件夹,就可以使用另一种方法,因为它会收到你可能不知道的Folder.ID
参数。但是要知道感谢Folder.Bind,你有“{1}} of john.snow@mail.com”的FolderID,所以你可以在他的项目中搜索:
MsgFolderRoot
我不知道如果我说清楚了。我有更多疑问,只是问。
修改强>
您可以向FindItems提供一个改进的searchFilter,它允许您获取项目 满足一些要求。喜欢用附件搜索电子邮件。搜索电子邮件 比某个日期更早。 ETT。
这是一个例子:
FindItemsResults<Item> findResults = service.FindItems(FolderBind.Id, searchFilter, view);