gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:06:02 27 4
gpt4 key购买 nike

在 EWS Managed 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 后的任何文件夹(您可以将其用作参数)

例如,如果我是一名交换管理员,并且我想获取具有 smtp 地址“john.snow@mail.com”的用户的根文件夹,我将以这种方式绑定(bind)到该文件夹​​:

Folder FolderBind =
Folder.Bind(service, new FolderId
(WellKnownFolderName.MsgFolderRoot, "john.snow@mail.com));

一旦您将 FolderBind 加载到您想要的任何文件夹中,您就可以使用其他方法,因为它接收到您可能不知道的 Folder.ID 参数。但感谢 Folder.Bind,您拥有“john.snow@mail.com”的 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 Managed API 使用 FindItems 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15806156/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com