EWS API:删除与会者并设置“SendOnlyToChanged”向每个人发送更新

时间:2013-09-05 15:09:16

标签: java exchangewebservices ewsjavaapi

我尝试以编程方式从约会中删除与会者,并使用选项SendOnlyToChanged进行更新。问题是所有与会者还收到一封电子邮件,其中包含有关会议的更新,而不仅仅是已更改的内容。

appointmentOutlook.update( ConflictResolutionMode.AlwaysOverwrite,SendInvitationsOrCancellationsMode.SendOnlyToChanged );

我在Exchange服务器论坛上发现了同样的问题here,但也没有成功。

是否有人为此问题找到了解决方案或解决方法?

2 个答案:

答案 0 :(得分:2)

诀窍是使用ConflictResolutionMode.AutoResolve

不要问我为什么会这样,这是answer to a more recent question然后是你的。

(所以我不会将答案标记为重复,但只是参考它。)

答案 1 :(得分:0)

以下是Independentsoft的API示例。管理员向Mark,John和Peter发送会议请求,并决定将John从会议中删除。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startTime = dateFormat.parse("2013-01-03 18:00:00");
Date endTime = dateFormat.parse("2013-01-03 19:00:00");

Appointment appointment = new Appointment();
appointment.setSubject("Test15");
appointment.setBody(new Body("Body text."));
appointment.setStartTime(startTime);
appointment.setEndTime(endTime);
appointment.setLocation("Room 123");
appointment.setReminderIsSet(true);
appointment.setReminderMinutesBeforeStart(30);
appointment.getRequiredAttendees().add(new Attendee("Mark@mydomain3.com"));          
appointment.getRequiredAttendees().add(new Attendee("John@mydomain3.com"));
appointment.getRequiredAttendees().add(new Attendee("Peter@mydomain3.com"));

ItemId itemId = service.sendMeetingRequest(appointment);

//add first
ItemChange itemChange1 = new ItemChange(itemId);
itemChange1.getPropertiesToSet().add(new Property(AppointmentPropertyPath.REQUIRED_ATTENDEES, new Attendee("Mark@mydomain3.com")));

itemId = service.updateItem(itemChange1, SendMeetingOption.SEND_TO_CHANGED_AND_SAVE_COPY);

{ //add others non-removed in a loop

    ItemChange itemChange2 = new ItemChange(itemId);
    itemChange2.getPropertiesToAppend().add(new Property(AppointmentPropertyPath.REQUIRED_ATTENDEES, new Attendee("Peter@mydomain3.com")));

    itemId = service.updateItem(itemChange2, SendMeetingOption.SEND_TO_CHANGED_AND_SAVE_COPY);
}