我正在寻找一种获取约会积分的方法。基本上,我要对新创建的约会做出反应。

要获取新创建/未读的消息,我使用的SearchFilter中有一个java ews api。不幸的是,AppointmentSchema没有为过滤器提供任何合适的枚举。

new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));


我得到的约会如下:

    CalendarFolder calendarFolder = CalendarFolder.bind(service, WellKnownFolderName.Calendar, new PropertySet());
    var result = calendarFolder.findAppointments(cView);


回到我的问题。我如何得知有人邀请我加入新的约会或包含新的约会邀请的电子邮件?

最佳答案

幸运的是,我已经找到了解决方案。 MeetingRequest是我要查找的Item

FindItemsResults<Item> result = service.findItems(new FolderId(WellKnownFolderName.Inbox, new Mailbox(getCredentials())), getUnreadEmailFilter(), new ItemView(10));
result.forEach(n -> {
    if (n instanceof MeetingRequest) {
       System.out.println("New Appointment - MeetingRequest found!");
       MeetingRequest req = (MeetingRequest) n;
       req.accept(true);
    }
}

10-07 19:09
查看更多