相关疑难解决方法(0)

Exchange Webservice Managed API - 按扩展属性查找项目

我曾试图在与EWS的约会上使用扩展属性,但我似乎无法再次找到约会.set属性部分等于此问题中显示的属性:

如何从ASP.NET中的Exchange Web Service托管API 2.0更新约会

当我尝试检索约会时,我遵循了以下示例:

http://msdn.microsoft.com/en-us/uc14trainingcourse_5l_topic3#_Toc254008129 http://msdn.microsoft.com/en-us/library/exchange/dd633697(v=exchg.80).aspx

但是当我进行查找时,我从未得到任何约会.

这是查找的代码:

        ItemView view = new ItemView(10);

        // Get the GUID for the property set.
        Guid MyPropertySetId = new Guid("{" + cGuid + "}");

        // Create a definition for the extended property.
        ExtendedPropertyDefinition extendedPropertyDefinition =
          new ExtendedPropertyDefinition(MyPropertySetId, "AppointmentID", MapiPropertyType.String);

        view.PropertySet =
         new PropertySet(
               BasePropertySet.IdOnly,
               ItemSchema.Subject,
               AppointmentSchema.Start,
               AppointmentSchema.End, extendedPropertyDefinition);

        SearchFilter filter = new SearchFilter.Exists(extendedPropertyDefinition);

        FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, filter,
            view);
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.

编辑: 当我尝试创建属性时,如文档所示:

http://msdn.microsoft.com/en-us/library/exchange/dd633654(v=exchg.80).aspx

它失败了,因为它是一个Guid我添加为属性值.: - /

再次编辑: 刚刚尝试获取今天的所有约会,并从我刚刚创建的约会获取属性,并且它与我存储的相同,没有{},因此它必须与过滤器一起使用.

再次编辑* 它有一些关系

 ExtendedPropertyDefinition extendedProperty …
Run Code Online (Sandbox Code Playgroud)

c# exchange-server exchangewebservices

6
推荐指数
1
解决办法
1万
查看次数

使用EWS和Exchange 2007通过对话实现Outlook 2010的分组

我们正在使用EWS在某些邮箱上生成一些分析。

这部分是获得对话的计数/名称/开始/结束。对话类似于Outlook 2010在按对话分组时显示它们的方式。

我希望能够使用ConversationId对项目进行分组,但这似乎仅是Exchange 2010的功能。

我可以在文件夹中按主题分组,以简单地了解线程...但是,这不能像Outlook 2010那样处理拆分的对话-特别是,它不能处理引入已发送邮件中的回复(这些对我们很重要-如果不查看答复,就无法获得良好的指标)。

我当前用于获取线程信息的代码如下所示:

private IEnumerable<EmailThread> GetThreads(Folder folder)
    {
        var view = new ItemView(int.MaxValue) {PropertySet = new PropertySet(BasePropertySet.IdOnly)};

        // view.PropertySet.Add(ItemSchema.ConversationId); - Can't use this as we're stuck on Exchange 2007 !!!
        view.PropertySet.Add(ItemSchema.Subject);
        view.PropertySet.Add(ItemSchema.DateTimeReceived);

        var grouping = new Grouping(ItemSchema.Subject, SortDirection.Descending, ItemSchema.DateTimeReceived, AggregateType.Maximum);
        var groupResults = folder.FindItems(view, grouping);


        return groupResults.Select(x => new EmailThread
        {
            Name = x.Items.First().Subject,
            Items =  x.Items.Count,
            StartDate = x.Items.Last().DateTimeReceived, // Assume last in thread is first email
            EndDate = x.Items.First().DateTimeReceived // Assume first in …
Run Code Online (Sandbox Code Playgroud)

c# outlook exchange-server exchange-server-2007 exchangewebservices

5
推荐指数
1
解决办法
2976
查看次数