c# - EWS 托管 API 使用 FindItems 的最佳方法

标签 c# exchangewebservices ews-managed-api

在 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

这两种方法有什么区别?哪一个是首选? (我认为您真的不需要绑定(bind)到文件夹?)

最佳答案

Folder.Bind 允许您绑定(bind)所需的文件夹。如果您有权限,您甚至可以绑定(bind)到其他用户的文件夹。或者恢复FolderID后的任何文件夹(您可以将其用作参数)

例如,如果我是 Exchange 管理员,我想获取 smtp 地址为“[email protected] ”的用户的根文件夹,我将通过以下方式绑定(bind)到该文件夹​​:

Folder FolderBind =
                   Folder.Bind(service, new FolderId
                       (WellKnownFolderName.MsgFolderRoot, "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8ce6e3e4e2a2ffe2e3fbcce1ede5e0a2efe3e1" rel="noreferrer noopener nofollow">[email protected]</a>));

一旦您的FolderBind 加载了您想要的任何文件夹,您就可以使用其他方法,因为它接收您可能不知道的Folder.ID 参数。但要知道,多亏了Folder.Bind,您才拥有“[email protected] ”的 MsgFolderRoot 的FolderID,因此您可以使用以下命令在其项目内执行搜索:

FindItemsResults<Item> findResults = service.FindItems(FolderBind.Id, searchFilter, view);

我不知道我是否说清楚了。如果您还有更多疑问,请尽管询问。

编辑:

您可以为FindItems提供一个精炼的searchFilter,它允许您获取项目 满足一些要求。就像搜索带有附件的电子邮件一样。搜索电子邮件 比某个日期更旧。等。

这里是一个例子:

List<SearchFilter> searchORFilterCollection = new List<SearchFilter>();
            searchORFilterCollection.Add( new SearchFilter.IsEqualTo(EmailMessageSchema.HasAttachments, true));
            searchORFilterCollection.Add(new SearchFilter.IsLessThan(EmailMessageSchema.DateTimeReceived,DateTime.Now.AddMonths(-3)));


SearchFilter searchFilter= new SearchFilter.SearchFilterCollection(LogicalOperator.And,searchORFilterCollection.ToArray());

关于c# - EWS 托管 API 使用 FindItems 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15806156/

相关文章:

c# - 在 Sqlite.net PCL 中找不到 SQLitePlatformIOS

c# - 如何获取已删除的 Exchange 项目?

exchangewebservices - Exchange 2010 EWS 删除邮件

c# - IIS7 : Why can't i Choose v3. 5 .net 框架?

c# - 将字节数组转换为字符串然后用正则表达式解析是个坏主意吗?

java - EWS - getUserAvailability 方法的时区问题

c# - 如何使用 EWS 托管 API 保存项目附件

c# - Outlook 如何创建任务请求?

exchange-server - 使用EWS API将邮件保存到msg文件

c# - 从特定列获取数据表中的行索引