【问题标题】:EWS API: Remove attendee and set "SendOnlyToChanged" sends update to everyoneEWS API:删除与会者并设置“SendOnlyToChanged”向所有人发送更新
【发布时间】:2016-02-25 21:15:38
【问题描述】:

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

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

我在交换服务器论坛上找到了同样的问题here,但也没有成功。

有人找到解决此问题的解决方案或解决方法吗?

【问题讨论】:

    标签: java exchangewebservices ewsjavaapi


    【解决方案1】:

    诀窍是使用ConflictResolutionMode.AutoResolve

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

    (所以我不会将任何一个答案标记为重复,而只是参考它)。

    【讨论】:

    • 这并没有为我们解决问题,我们使用的是 Exchange 2010 ...仍在删除时向所有收件人发送邮件...
    【解决方案2】:

    这是 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);
    }
    

    【讨论】:

      猜你喜欢
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      相关资源
      最近更新 更多