c# - 查询特定exchange 2013文件夹EWS

标签 c# find exchangewebservices

非常感谢任何帮助、链接或想法。谢谢!

总体目标

如何查询 Exchange 2013 中的特定折叠以读取每条消息的正文,以便我可以从自动警报中收集信息并写入 csv 文件?

我无法弄清楚的具体问题

如何查询特定文件夹?

问题

我只能找到如何搜索收件箱的示例。我需要更改该语句以指定特定文件夹。

问题所在的当前代码部分

 try
            {
                //read the subject line of the 10 most recently recieved emails in the inbox
                FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));
                foreach (Item item in findResults.Items)
                {
                    Console.WriteLine(item.Subject);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message.ToString());
                Console.ReadLine();
            }
            Console.ReadLine();

问题线

FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));

最佳答案

try
{
    //create searchable object called rootfolder and set root to equal Inbox
    Folder rootfolder = Folder.Bind(service, WellKnownFolderName.Inbox);
    //foreach child folder inside Ibox
    foreach (Folder folder in rootfolder.FindFolders(new FolderView(100)))
    {
        //if the child folder is named hey
        if (folder.DisplayName.Contains("hey"))
        {
            //create searchable object of child of root but now is root to be searched within folder and set it as root folder
            Folder childfolder = Folder.Bind(service, folder.Id);
            //foreach childfolder to new root
            foreach (Folder cfolder in childfolder.FindFolders(new FolderView(100)))
            {
                //if child folder is blah then search items
                if (cfolder.DisplayName.Contains("blah"))
                {
                    //create searchable object of blah folder and set it as root folder
                    FindItemsResults<Item> blah = service.FindItems(cfolder.Id, new ItemView(10));
                    //this will load all the extra properites for each email (SUCH AS BODY)
                    service.LoadPropertiesForItems(from Item item in blah select item, PropertySet.FirstClassProperties);
                    foreach (Item item in blah.Items)
                    {
                       //Console.WriteLine(item.DateTimeReceived + "\n\t" + item.Body);
                        Console.WriteLine(item.Subject);
                        Console.WriteLine("\t"+item.DateTimeReceived);
                        Console.WriteLine("\t" + item.Body.Text.ToString());
                    }
                }
            }
        }
    }


}
catch (Exception e)
{
    Console.WriteLine(e.Message.ToString());
}
Console.ReadLine();

关于c# - 查询特定exchange 2013文件夹EWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533029/

相关文章:

c# - 在 C# 中引用处置的对象

powershell - 替换Word文件中页眉、页脚中的特定文本和普通文本

coldfusion - 无法使用 cfexchangeConnection 访问委派日历

java - EWS XML 查询无答案

c# - 使用 OData 在我的数据库中插入一条新记录

c# - 部分类可以访问 C# 中的静态方法吗?

c# - 如何在嵌套母版页 asp.net mvc 4 中制作基于角色的动态菜单?

user-interface - 在文本编辑器和 IDE 中寻找查找和替换用户界面的好例子

unix find 命令以 '+' 字符结尾

exchange-server - Item.Id 和 EmailMessage.InternetMessageId 有什么区别