首页 > 解决方案 > 如何使用 Microsoft ews 2.0 获取用户会议日历事件响应消息

问题描述

我在获取用户在其邮箱中接受/拒绝会议时发送的日历事件会议响应消息时遇到问题。一般来说,我会在我的应用程序中为给定用户发送日历通知(创建新的约会对象)。在 java 代码中,我可以获取 Appointment 对象,也可以是 AttendeeCollection,还可以使用attendee.getResponseType(). 但这就是全部。

我想在我的应用程序中显示用户在接受/拒绝邀请时给出的响应 - 他给出的附加文本。事实上,这是一封以 MeetingResponse 类型发送的电子邮件。它不是 EmailMessage 类型。我可以使用以下代码从 int 收件箱文件夹中获取所有电子邮件:

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

这给了我 100 封电子邮件的列表,我可以看到他们的类型,但是如何在执行请求之前过滤那些 meila,以获得我正在寻找的一个会议响应。参加者或约会是否以某种方式与这封电子邮件相关联,我必须这么想,对吧?但是如何,用于查询的 ID,或者是否有另一种方法来获取会议响应正文?

我有点卡在这个问题上。最终目标是提供用户在我的应用程序中提供的消息。

我会很感激任何帮助,干杯

标签: javacalendarexchangewebservicesappointment

解决方案


我找到了一个解决方案,也许将来有人会需要它:

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();
}

推荐阅读