Управляемый API EWS - игнорировать приглашения на собрания

Использование EWS API для получения непрочитанных сообщений из почтового ящика с помощью кода ниже. Он также получает запросы на собрания (или приглашения). Есть ли способ игнорировать такие электронные письма?

//search filter to get unread email
var searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));

//count of unread emails to retrieve
var view = new ItemView(50) { PropertySet = new PropertySet(PropertySet.IdOnly) };

//properties to return in the result set
var propertySet = new PropertySet {
    ItemSchema.Subject,
    ItemSchema.Body,
    ItemSchema.HasAttachments,
    ItemSchema.DateTimeReceived };

//order the search results by the DateTimeReceived in asc order
view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Ascending);

//set the traversal to shallow - shallow is the default option other options are Associated and SoftDeleted
FindItemsResults<Item> findResults;

do {
    //get emails from Inbox using search filter, view and retrieve properties defined above
    findResults = exchangeService.FindItems(WellKnownFolderName.Inbox, searchFilter, view);
    if (findResults.Items.Count > 0)
    {
        //do stuff
    }
    view.Offset += findResults.Items.Count;
} while (findResults.MoreAvailable);

person obautista    schedule 11.05.2017    source источник


Ответы (1)


Запросы на собрания будут иметь другой ItemClass, поэтому вы можете либо просто отфильтровать их на стороне клиента (что я бы сделал), либо создать SearchFilter, чтобы просто возвращать элементы с ItemClass IPF.Примечание (однако вы можете пропустить некоторые элементы таким образом ).

person Glen Scales    schedule 12.05.2017
comment
Вы можете привести пример? Как мне отфильтровать на стороне клиента? - person obautista; 12.05.2017
comment
Все, что вам нужно сделать, это добавить ItemSchema.ItemClass к набору свойств, а затем в части // делать вещи посмотрите значение свойства ItemClass, чтобы определить, с каким типом элемента вы имеете дело. Управляемый API EWS также возвращает типизированные элементы, так почему бы вам просто не проверить тип элемента, например, если (элемент - это сообщение электронной почты) и т. Д. (Приглашения на собрания будут иметь значение MeetingRequest). Вы должны сначала попробовать это сами, прежде чем просить людей написать код для вас, так вы учитесь, даже если то, что вы пишете, не работает. - person Glen Scales; 12.05.2017