如何使用EWS API从OWA中仅检索电子邮件文件夹?

时间:2017-11-17 22:59:31

标签: c# ews-managed-api

我想使用EWS API从OWA检索电子邮件文件夹(参见下面的屏幕截图)

enter image description here

这是我的代码:

FolderView folderView = new FolderView(MAX_VALUE);
FindFoldersResults findFoldersResults = service.findFolders(WellKnownFolderName.MsgFolderRoot, folderView);

返回的结果包含所有类型的文件夹:约会,电子邮件,消息,联系人等。

Calendar
Contacts
{06967759-274D-40B2-A3EB-D7F9E73727D7}
{A9E2BC46-B3A0-4243-B315-60D991004455}
Recipient Cache
Conversation Action Settings
custom folder
Deleted Items
Drafts
Inbox
Journal
Junk Email
Notes
Outbox
Sent Items
Tasks

如何检索电子邮件文件夹?

2 个答案:

答案 0 :(得分:1)

您可以使用SearchFilter过滤掉隐藏的文件夹,例如

ExtendedPropertyDefinition isHiddenProp = new ExtendedPropertyDefinition(0x10f4, MapiPropertyType.Boolean);
FindFoldersResults findFolder = service.FindFolders(WellKnownFolderName.MsgFolderRoot,
new SearchFilter.IsEqualTo(isHiddenProp, false), folderView);

您还可以通过在FolderClass上过滤来过滤掉非联系人,日历等非邮件文件夹(例如,对邮箱文件夹使用IPF.Note)。但它可能只是通过在返回时检查类型来过滤客户端。

答案 1 :(得分:0)

尝试使用WellKnownFolderName.Inbox。然后,您将只从“收件箱”文件夹中检索子文件夹。

FindFoldersResults findFoldersResults = service.findFolders(WellKnownFolderName.Inbox, folderView);