Как получить ответное сообщение о событии в календаре собраний пользователей с помощью Microsoft ews 2.0 - PullRequest
0 голосов
/ 08 октября 2019

У меня проблема с получением сообщения с ответом на событие календаря, которое пользователь отправляет при принятии / отклонении собрания в своем почтовом ящике. В общем, я отправляю уведомления календаря (создавать новые объекты Встречи) для заданных пользователей в моем приложении. В коде Java я могу получить объект Appointment, также AttendeeCollection, также я могу получить тип ответа с attendee.getResponseType(). Но это все.

Я хотел бы показать в своем приложении ответ, который пользователь дал при принятии / отклонении приглашения, - дополнительный текст, который он дал. Фактически это электронное письмо, отправленное с типом MeetingResponse. Это не тип EmailMesage. Я могу получить все электронные письма из папки int inbox, используя этот код:

Folder.bind(service, WellKnownFolderName.Inbox).findItems(new ItemView(100))

Это дает мне список из 100 электронных писем, я могу видеть их тип, но как я могу отфильтровать эти meila перед выполнением запроса, дляответ на одну встречу, который я ищу. Является ли Attendee или Appointment каким-то образом связанным с этим письмом, я должен подумать, верно? но как, какой идентификатор использовать для запроса, или, может быть, есть другой способ получить тело ответа на собрание?

Я застрял в этой проблеме. Конечная цель - предоставить сообщение, которое пользователь дал в моем приложении.

Буду признателен за любую помощь, ура

1 Ответ

0 голосов
/ 09 октября 2019

Я нашел решение, возможно, кому-то в будущем оно тоже понадобится:

final Appointment appointment = Appointment.bind(service, new ItemId(appointmentId));
final SearchFilter searchFilter = new SearchFilter.IsEqualTo(ItemSchema.ConversationId, appointment.getConversationId().toString());
final ItemView view = new ItemView(1);
view.setPropertySet(new PropertySet(BasePropertySet.IdOnly, ItemSchema.Subject, ItemSchema.ConversationId));
final FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.Inbox, searchFilter, view); 
if (findResults.getTotalCount() == 1) {
      final Item item = findResults.getItems().get(0);
      item.load();
      return item.getBody();
}
...