C# 在Exchange Server上搜索特定文件夹
我有一段代码,当前可以从“常规收件箱”文件夹读取exchange服务器上的所有电子邮件。下面一行是访问该特定文件夹的内容C# 在Exchange Server上搜索特定文件夹,c#,api,exchange-server,exchange-server-2010,C#,Api,Exchange Server,Exchange Server 2010,我有一段代码,当前可以从“常规收件箱”文件夹读取exchange服务器上的所有电子邮件。下面一行是访问该特定文件夹的内容 FindItemsResults<Item> findResults = exchange.FindItems(WellKnownFolderName.Inbox, new ItemView(250)); 问题: 是否可以修改此代码,以便我可以搜索用户创建的文件夹而不是普通收件箱?例如,我创建了一个名为testfolder的文件夹,我希望能够在这里阅读所有电子
FindItemsResults<Item> findResults = exchange.FindItems(WellKnownFolderName.Inbox, new ItemView(250));
问题:
是否可以修改此代码,以便我可以搜索用户创建的文件夹而不是普通收件箱?例如,我创建了一个名为testfolder的文件夹,我希望能够在这里阅读所有电子邮件
我已尝试添加搜索筛选器,但目前未返回任何结果:
SearchFilter searchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Test Folder");
FindItemsResults<Item> findResults = exchange.FindItems(WellKnownFolderName.Inbox, searchFilter, new ItemView(250));
您需要首先找到用户创建的相关文件夹的FolderId,然后可以使用FolderId在服务类的FindItem方法中使用它,或者在文件夹本身上使用FindItem方法。例如,要查找用户创建的文件夹,可以将其转换为路径并搜索该路径
internal static Folder GetFolderFromPath(ExchangeService service,String MailboxName,String FolderPath)
{
FolderId folderid = new FolderId(WellKnownFolderName.MsgFolderRoot,MailboxName);
Folder tfTargetFolder = Folder.Bind(service,folderid);
PropertySet psPropset = new PropertySet(BasePropertySet.FirstClassProperties);
String[] fldArray = FolderPath.Split('\\');
for (Int32 lint = 1; lint < fldArray.Length; lint++) {
FolderView fvFolderView = new FolderView(1);
fvFolderView.PropertySet = psPropset;
SearchFilter SfSearchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName,fldArray[lint]);
FindFoldersResults findFolderResults = service.FindFolders(tfTargetFolder.Id,SfSearchFilter,fvFolderView);
if (findFolderResults.TotalCount > 0){
foreach(Folder folder in findFolderResults.Folders){
tfTargetFolder = folder;
}
}
else{
tfTargetFolder = null;
break;
}
}
if (tfTargetFolder != null)
{
return tfTargetFolder;
}
else
{
throw new Exception("Folder Not found");
}
}
因此,如果文件夹在收件箱中,您将使用
GetFolderFromPathservice,mailbox@domaim.com,\Inbox\folder,然后返回该文件夹。非常感谢,这将帮助应用程序更高效地运行