Как получить почту в ews, указав дату начала и дату окончания - PullRequest
0 голосов
/ 10 октября 2018

Я очень новичок в теме, связанной с почтой EWS.Моя задача - получить все письма между двумя датами.

Я пробовал пару других подходов, но не достиг ожидаемого результата.

SearchFilter filter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, greaterthanfilter); 

Как мы можем получить почту с почтового сервера EWS, указав дату начала и дату окончания?

1 Ответ

0 голосов
/ 10 октября 2018

Код в вашем комментарии направлен в правильном направлении:

protected FindItemsResults<Item> getEmailsInTimeRange(ExchangeService service, Date from, Date to) throws Exception {
    ItemView view = new ItemView(128);
    SearchFilter fromFilter = new SearchFilter.IsGreaterThan(ItemSchema.DateTimeReceived, from);
    SearchFilter toFilter = new SearchFilter.IsLessThan(ItemSchema.DateTimeReceived, to);
    SearchFilter inRangeFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, fromFilter, toFilter);
    FindItemsResults<Item> items = service.findItems(WellKnownFolderName.Inbox, inRangeFilter, view);
    return items;
}

Но запомните :

Операция FindItemвозвращает только первые 512 байт любого свойства streamable.Для Unicode он возвращает первые 255 символов, используя завершенную нулем строку Unicode.Он не возвращает ни один из форматов тела сообщения или списков получателей.FindItem вернет резюме получателя.Вы можете использовать операцию GetItem для получения сведений об элементе.

Источник: MS Doc Операция FindItem

Если вам нужны свойства, которые не 'т, то лучше ограничить запрос на возврат только идентификаторов предметов.Это потенциально ускорит обработку на стороне сервера, поскольку для каждого Item.

ItemView view = new ItemView(128);
view.setPropertySet(PropertySet.IdOnly);

требуется только ItemSchema.Id. Теперь итерируйте по FindItemsResults<Item> items:

for (Item item : items) {
    EmailMessage email = EmailMessage.bind(service, item.getId(), propertySet);
    // process the email
}

.propertySet должен содержать только те свойства, которые необходимо прочитать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...