2013-09-05 2 views
0

Я пытаюсь удалить участника программно из встречи и обновить его с помощью опции SendOnlyToChanged. Проблема заключается в том, что все участники также получают электронное письмо с обновлением о собрании, а не только измененным.EWS API: Удалить участника и установить «SendOnlyToChanged» отправляет обновление всем

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

я нашел тот же вопрос here на серверах обмена на форуме, но и без успеха.

Кто-нибудь нашел решение или обходной путь для этой проблемы?

ответ

0

Вот пример с API от Independentsoft. Администратор отправляет приглашение на встречу Марку, Джону и Питеру и решил удалить Джона со встречи.

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("[email protected]"));   
appointment.getRequiredAttendees().add(new Attendee("[email protected]")); 
appointment.getRequiredAttendees().add(new Attendee("[email protected]")); 

ItemId itemId = service.sendMeetingRequest(appointment); 

//add first 
ItemChange itemChange1 = new ItemChange(itemId); 
itemChange1.getPropertiesToSet().add(new Property(AppointmentPropertyPath.REQUIRED_ATTENDEES, new Attendee("[email protected]"))); 

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("[email protected]"))); 

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

Хитрость заключается в использовании ConflictResolutionMode.AutoResolve.

Не спрашивайте меня, почему он работает таким образом, это было в answer to a more recent question, затем ваш.

(Поэтому я не буду отмечать ни один ответ как дубликат, а просто ссылаюсь на него).

+0

Это не помогло решить проблему, мы используем Exchange 2010 ... по-прежнему отправляем почту всем получателям при удалении ... – Sayyid