如何使用 EWS 删除 Exchange 会议并通知与会者(如何获取正确的会议 ID)

How to delete Exchange meeting using EWS and notify attendees (how to obtain correct id of the meeting)

如果我使用 EWS 创建会议,我会得到一个 ID,以后可以用它来删除或更新它。它运作良好并将所有通知发送给与会者。

但是,如果我从 FindItems 请求中获取 ID,它 returns 是一个不同的 ID。这个新 ID 以不同的方式工作。我可以更新和删除项目,但没有人收到通知。 SendMeetingInvitations 设置为 CalendarItemCreateOrDeleteOperationType.SendToAllAndSaveCopy,但没有帮助。

我尝试了 EWS Managed API 和 EWS。两者的工作原理相同。

很遗憾,我无法在某些系统中保存第一个 ID,因为我需要管理的一些会议是从 Outlook 创建的。

关于如何获取正确的 ID 或如何让 Exchange 在我的情况下自动发送更新通知有什么想法吗?

这是我得到错误 ID 的方式:

FolderIdType folderId = GetCalendarFolderId(meetingRoomEmail);
FindItemType findItemType = new FindItemType();
findItemType.ParentFolderIds = new BaseFolderIdType[] {folderId};
findItemType.ItemShape = new ItemResponseShapeType();
findItemType.ItemShape.BaseShape = DefaultShapeNamesType.IdOnly;

ArrayOfRealItemsType arrayOfRealItemsType =
            (ArrayOfRealItemsType) ((FindItemResponseMessageType) responseMessage).RootFolder.Item;
ItemType[] itemIdsOnly = arrayOfRealItemsType.Items;

Update1:问题似乎与我在资源(会议室)日历文件夹中查找并且根项目在组织者的日历文件夹中有关。如果我的猜测是正确的,请告诉我如何通过会议室文件夹中的项目找到管理器文件夹中的相关项目。

PS:Exchange 2010 SP3

是的,您的更新很有意义。您需要更新组织者的副本,以便每个人都能收到通知。您应该能够使用 ICalUid 属性.

来匹配它们