【问题标题】:EWS create event with original organizerEWS 与原始组织者一起创建活动
【发布时间】:2023-04-03 12:11:01
【问题描述】:

我们正在尝试使用作为迁移代码一部分的 EWS 创建事件。有一个众所周知的问题,我们无法设置活动的组织者是原始组织者,这里是场景;

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

    约会约会 = new Appointment(exchangeService);

    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));
    

微软在此处解释了问题;

https://blogs.msdn.microsoft.com/webdav_101/2011/09/28/howto-set-the-organizer-of-a-meeting-on-the-calendar-of-an-attendee-using-ews/

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

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

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

【问题讨论】:

    标签: exchange-server exchangewebservices mime


    【解决方案1】:

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

    属性“organizer”是只读的,不能更改,这样你就不会成功。

    我会尝试从用户 A 那里获得约会的组织者,模拟他们(或使用委托访问)并向用户 B 发送邀请。

    冒充其他用户的热门:https://msdn.microsoft.com/en-us/library/office/dd633680(v=exchg.80).aspx

    获得委托访问权限:https://msdn.microsoft.com/en-us/library/office/dn641957(v=exchg.150).aspx

    【讨论】:

      【解决方案2】:

      这正是我的想法。但在这种情况下,客户表达的唯一担心是邀请将在他们的收件箱中迅速增加。因此,假设今天是 2017 年 1 月 20 日,并且有一个 15th Jan 2015 事件,它是 BACK DATE 事件。在那种情况下,我只是无法发送邀请。

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

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

      【讨论】:

        猜你喜欢
        • 2019-06-12
        • 2013-02-11
        • 2017-06-17
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        • 1970-01-01
        • 2012-12-17
        • 2018-10-01
        相关资源
        最近更新 更多