Exchange server EWS使用原始组织者创建事件

Exchange server EWS使用原始组织者创建事件,exchange-server,exchangewebservices,mime,Exchange Server,Exchangewebservices,Mime,我们正在尝试使用EWS创建事件,EWS是迁移代码的一部分。有一个众所周知的问题,我们不能设置事件的组织者,这是最初的一个,这里是场景 用户A正在迁移到用户B 用户A在日历中有30个事件 在这30个活动中,它有20个邀请活动,其中A是参与者,10个活动由用户A创建(即用户A是组织者) 当我们迁移它们时,使用下面的代码,所有事件都是以用户A作为组织者创建的。真正的问题是什么 预约=新预约(交换设备) 微软在这里解释了这个问题 我不确定这一段到底想说什么 如果决定使用MIME创建会议,请让MIME

我们正在尝试使用EWS创建事件,EWS是迁移代码的一部分。有一个众所周知的问题,我们不能设置事件的组织者,这是最初的一个,这里是场景

  • 用户A正在迁移到用户B
  • 用户A在日历中有30个事件
  • 在这30个活动中,它有20个邀请活动,其中A是参与者,10个活动由用户A创建(即用户A是组织者)
  • 当我们迁移它们时,使用下面的代码,所有事件都是以用户A作为组织者创建的。真正的问题是什么

    预约=新预约(交换设备)

  • 微软在这里解释了这个问题

    我不确定这一段到底想说什么

    如果决定使用MIME创建会议,请让MIME/VCALENDAR内容使用方法:PUBLISH而不是REQUEST。问题在于,还需要设置其他属性。没有任何文件或建议说明需要设置什么,或者方法是否适用于所有情况。此外,您可能会让它暂时可靠地工作,但在将来的Exchange更新中,它可能无法按预期工作


    有人能帮助我如何实现与不同组织者创建活动的要求吗?我是否有机会这样做?

    您所做的不是迁移约会,而是创建新的约会

    属性“organizer”是只读的,无法更改,因此您无法以这种方式成功

    我将尝试从用户A获取约会组织者,模拟这些组织者(或使用代理访问),并向用户B发送邀请

    要模拟其他用户,请执行以下操作:


    获取代理访问权限的热度:

    这正是我所想的。但在这种情况下,客户唯一担心的是邀请会在他们的收件箱中激增。因此,假设今天是2017年1月20日,2015年1月15日发生了一次事件,该事件的日期追溯到2017年1月15日。那样的话,我就不能发出邀请了

    另外,另一个问题是,没有必要只邀请内部员工。也可能有外部的人会开始收到邀请邮件。如果你明白我的意思。所以这个解决方案行不通

    我所希望的是,是否有任何方法可以通过编程方式创建MeetingRequest,这也是不可能的,但如果我可以创建MeetingRequest项目的MIME,并将其保存在收件箱中。因为我注意到,若我收到活动邀请,那个将显示在日历上。显然,无论用户是否接受,我们都无法复制状态,但至少这是一个解决方案。有什么建议吗

    appointment.MimeContent = new MimeContent("UTF-8", System.IO.File.ReadAllBytes(@"c:\A\test.mime"));
    //appointment.MimeContent = ; 
    // Set the properties on the appointment object to create the appointment.
    appointment.Subject = "Tennis lesson with invite 22222";
    appointment.Body = "Focus on backhand this week.";
    appointment.Start = DateTime.Now.AddDays(2);
    appointment.End = appointment.Start.AddHours(1);
    appointment.Location = "Tennis club";
    appointment.ReminderDueBy = DateTime.Now;
    
    Attendee attendee = new Attendee("test@user.com");
    appointment.RequiredAttendees.Add(attendee);
    
    Mailbox mailbox = new Mailbox();
    mailbox.Address = "student@test.com";
    
    // Save the appointment to your calendar.
    appointment.Save(new FolderId(WellKnownFolderName.Calendar, mailbox), SendInvitationsMode.SendToAllAndSaveCopy);
    
    // Verify that the appointment was created by using the appointment's item ID.
    Item item = Item.Bind(exchangeSevice, appointment.Id, new PropertySet(ItemSchema.Subject));