1

无论如何,在使用 ActiveSync 时,是否可以在 Exchange EWS 中获得相同的“ MessageId ”?

我认为这是一种唯一标识每条消息的 Exchange 方式,但我似乎找不到使用 ActiveSync 检索它的方法。

编辑:我有 2 个应用程序,一个使用 ActiveSync 存储信息,一个使用 EWS 存储信息,我希望它们能够在同一条消息上单独工作......为此,我希望使用 EWS MessageId,它似乎是每个单独消息的 GUID 类型标识符。(注意:这似乎与电子邮件标头中的 Message-ID 不同)。

4

2 回答 2

3

可悲的是,你大多不走运。

ActiveSync 不是集成协议,它是为智能手机等低带宽通信设备设计的移动同步协议。EWS 中的许多功能在 EAS 中将不存在。

长期消息识别和关联对于移动设备来说并不那么重要。他们只是被告知每个文件夹中有哪些消息,并允许用户操作它们。在任何时候,Exchange 服务器都可能会告诉其 EAS 连接的客户端“重新同步”,这会导致它们忘记设备上的消息并从服务器中干净地提取它们。EAS 经常发生这种情况,有时一小时几次,具体取决于该邮箱发生的情况。例如,通过 Outlook 删除文件夹会导致 aFolderSync发生,这会强制连接的设备再次干净地重新同步。

因此,EAS 似乎已经留下了 GUID 或其他用于消息的长期 ID 的概念。相反,服务器将分配仅在下一次大重新同步被强制(可能随时发生)之前有效的临时 ID。您可能会看到 Exchange 提供非常简单的 ID,例如7:45(这意味着文件夹 7 中的消息 ID 45,IIRC)。但是,在重新同步之后,可能有数字7:32(如果用户删除该文件夹中的其他消息)或类似的东西4:22(如果消息完全移动到另一个文件夹)。

其他 EAS 服务器(如 Zimbra、Kerio 或 Notes Traveler)可能会分配 GUID,但根据内存,这就是 Exchange 的行为方式。您唯一的选择可能是将您自己的隐藏相关 ID 放入您感兴趣的消息的正文或主题中。这将允许您跟踪您感兴趣的项目的生命周期,但会牺牲一些奇怪的用户在他们的消息内容中可以看到的东西。

于 2013-10-05T16:34:43.963 回答
2

@Brian 是正确的-ActiveSync 项目没有可用于与 EWS 关联的全局唯一标识符(除了某些例外,例如会议邀请具有 UID,可与某些黑客一起使用以检索 EWS 的事件也是如此相关 EWS 日历事件的 ID),并且没有任何对用户不可见的字段可以被劫持以添加您自己的数据以与之关联。这在电子邮件、联系人、任务、笔记等中最为明显......

但是,如果您同时同步两者,则可以使用对象中的元数据进行匹配。例如,为联系人编写一个散列算法,将名字、姓氏、公司名称等字段中的数据结合起来并产生结果。这可以在双方的数据上运行,并且匹配的对象碰撞相对较少(并且那些确实发生碰撞的对象无论如何都会对用户具有完全相同的可见数据,所以在大多数情况下,你没有关系并不重要得到一个精确的对齐)

于 2015-05-28T19:15:35.343 回答