当前位置: 首页 > 知识库问答 >
问题:

使用EWS API从FindItems获取IEnumerable

漆雕成弘
2023-03-14

我正在编写一个C#应用程序,通过一些监控邮箱,清除超过指定期限(例如6个月)的电子邮件。

以前我要获取这些项,然后在foreach块中依次删除每个项。在寻找另一个问题的解决方案时,我无意中使用了DeleteItems。这需要System.Collection.Generic.IEnumerable ,但在下面的代码中,FindItems返回System.Collection.ObjectModel.Collection

如何转换或获取传递给DeleteItems的正确类型?

ExtendedPropertyDefinition allFoldersType = new ExtendedPropertyDefinition(13825, MapiPropertyType.Integer);

FolderId rootFolderId = new FolderId(WellKnownFolderName.Root);
FolderView folderView = new FolderView(1000);
folderView.Traversal = FolderTraversal.Deep;

SearchFilter.SearchFilterCollection searchFilterCollection = new SearchFilter.SearchFilterCollection(LogicalOperator.And);
searchFilterCollection.Add(new SearchFilter.IsEqualTo(allFoldersType, "2"));
searchFilterCollection.Add(new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "allitems"));

FindFoldersResults findFoldersResults = exchangeService.FindFolders(rootFolderId, searchFilterCollection, folderView);

Folder allItemsFolder = findFoldersResults.Folders[0];

searchFilterCollection = new SearchFilter.SearchFilterCollection(LogicalOperator.And);
searchFilterCollection.Add(new SearchFilter.IsLessThanOrEqualTo(ItemSchema.DateTimeReceived, DateTime.Now.AddMonths(-6)));
searchFilterCollection.Add(new SearchFilter.IsEqualTo(ItemSchema.ItemClass, "IPM.Note"));

var findItems = allItemsFolder.FindItems(searchFilterCollection, new ItemView(100));
var items = findItems.Items;

exchangeService.DeleteItems(findItems, DeleteMode.HardDelete, SendCancellationsMode.SendToNone, AffectedTaskOccurrence.SpecifiedOccurrenceOnly);

共有1个答案

夏博
2023-03-14

每个项目都有ItemId类型的ID属性,可以使用LINQ:

var findItems = allItemsFolder.FindItems(searchFilterCollection, new ItemView(100));
var itemIds = findItems.Items.Select(item => item.Id);

exchangeService.DeleteItems(itemIds, DeleteMode.HardDelete, SendCancellationsMode.SendToNone, AffectedTaskOccurrence.SpecifiedOccurrenceOnly);

项目文档:Microsoft.Exchange.WebServices.Data.Item

项目Id文档:Microsoft_Exchange_WebServices_Data_Item_Id

 类似资料:
  • 问题内容: 当我尝试从JSON字符串检索值时,它给了我一个错误: 但是,如果我遍历数据,它将为我提供元素(和),而不是值: 哪个返回: 我需要怎么做才能得到and 的值?(和) 问题答案: 如果要遍历字典的键和值,请执行以下操作:

  • 我试图从我的数据库中提取一个值。我有一个收藏叫:randoms模型的名字:Random 在集合中,我有一个对象和一个名称字段。我想检索“name”的值并将其显示在控制台中。 控制台中的结果应为:“TestName”。 这是我的方法: 控制台显示结果:未定义。 这是数据库。 如果我控制台.log(随机)而不是控制台.log(randoms.name)我得到的结果: 这意味着连接是正常的。

  • 如果我知道文件名,有没有一种简单的方法来获得文件路径?

  • 问题内容: 我正在使用JAVAFX控件开发一个swing应用程序。在我的应用程序中,我必须打印出Webview中显示的html页面。我正在尝试的是借助HtmlDocuement将Webview的html内容加载为字符串。 要从Web视图加载html文件的内容,我正在使用以下代码,但无法正常工作: 问题答案: 返回,而不是您希望通过代码判断的JavaScript文档。 不幸的是,打印出来需要大量的编

  • 问题内容: 我正在尝试使用PDO从表中检索数据,只是我似乎无法向浏览器输出任何内容,只是得到了一个纯白页。 问题答案: 例。 这是您的dbc类 您的PHP页面:

  • 问题内容: 我在从此api阅读时遇到麻烦 http://api.xhanch.com/islamic-get-prayer- time.php?lng=67&lat=24&yy=2012&mm=7&gmt=5&m=json 这是我的代码: 此方法始终返回空白字符串,而不是我需要的信息。 问题答案: 这为你提供了一个可行的例子