Реализация группы Outlook 2010 путем разговора с использованием EWS и Exchange 2007

Мы используем EWS для создания некоторой аналитики на некоторых наших почтовых ящиках.

Часть этого получает значение / имя / начало / конец разговоров. Разговор, аналогичный на пути Outlook 2010, показывает их при группировке разговора.

Я надеялся уметь использовать разговор для групповых предметов, но, похоже, это только функция 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 thread is most recent
        });
    }

Я надеюсь, что кто-то знает о аккуратном пути, чтобы эффективно получить информацию о ответах, которые представляют собой часть разговора?

5
задан Kram 20 September 2011 в 15:17
поделиться