[EWS]在exchange中的标识符
摘要
最近在用ews的方式开发邮箱服务,包括写邮件,查看某封邮件的详情,回复,全部回复及转发功能。在获取收件箱的时候,关于唯一标识符的问题。也有点困惑,在每个邮件item中,存在一个changeKey和uniqueid的标识。关于这两个的区别还是查看msdn找到结果的。
EWS Identifiers in Exchange
原文地址:https://msdn.microsoft.com/en-us/library/office/dn605828(v=exchg.150).aspx
========================================丑陋的翻译分割线==================================================
找出在exchange中的标识符,怎么在EWS API和引用中使用他们。
在exhange存储中,每个对象都有一个唯一标识。你可以使用对象标识符去引用该对象也可以从其他对象中区分出来它。文件夹和item标识符是最常见的标识符。
为了理解标识符以及它对你的应用程序的重要性,理解对象之间的关系是非常有帮助的。当你的EWS Managed API 或者EWS应用在和Exchange通讯的时候,你将使用到不同等级的对象,包括邮箱,文件夹,item对象。一个存储可能是他们中的任何类型。通常,他在exchange服务器上是一个邮箱,但它也可能是一个在exchange服务器上公开的一个文件夹。(记住,在在线的exhange中,在线exchange是office 365的一部分,并且很多exhcnage版本以exchange2013开始,公开的文件仅仅是邮箱的另一种类型,并不是存储的不同种类。)
存储包括文件夹,文件夹包括items,并且每一个文件夹和item都有一个标识。如下图所示:
EWS identifiers
EWS中folders和items使用的标识符被成为ews标识符或者叫EwsIds。EwsIds在ews的很多不同的对象中都可以见到它。只是不同对象叫法不同罢了。因为,你可能在你的应用程序中使用这些对象,并且你想去理解怎样标识和EwsIds相关的这些对象。
这些在EWS中的标识符同样适用EWS Managed API.在EWS Managed API中,标识符是对象的属性,用来映射EWS元素。
下表列出了EWS中对象标识符。
对象 | 标识 | 与EWSID关系 |
CalendarItem | 对应的子元素包含的日历项的唯一标识符。 | 对应ItemId 的子元素和EwsId标识的项相同。 |
Conversationid | 它的id属性包含item是会议的一部分的标识。 | id属性和EwsId标识的Item相同 |
AttachmentId | 提供附件的唯一标识。RootItemId属性包含根存储的附件属于哪个item的唯一标识。 | 附件可以是在exchange存储中另外的items,在这种情况下,与EwsIds相同。RootItemId就是EwsId,因为它引用存储中的item。 |
PersonalId | id属性返回包含人员标识的字符串。 | id属性与EwsId标识的人员相同。 |
ContactId | id属性返回联系人的标识的字符串。 | id属性与EwsId标识的联系人相同。 |
GroupId | id属性返回群组的标识的字符串。 | d属性与EwsId标识的群组相同。 |
AssociatedCalendarItemId | id属性标识日历项,和MeetingMessage,MeetingRequest,MeetingResponse或者MeetingCancellation相关。 | d属性与EwsId标识的日历item相同。 |
UserConfigurationProperties | 此元素的标识值指定标识符属性。 | 此标识符不直接映射到EwsId,它并不是一项属性标识符。 |
OccurrenceItemId | The RecurringMasterId attribute identifies the master of a recurring item. | he OccurrenceItemId value does not map directly to the EwsId, but the RecurringMasterId does because it references the top-level object of the recurring item. |
StoreEntryId | 包含一个item的exhange存储标识 | 此标识符不直接映射大EwsId,但提供了item在store中保存的标识。 |
注意
文件夹和项目对应的元素值是区分大小写的。如果你看一个文件夹或项目是由finditem操作返回的项目(或finditems EWS托管API方法),你可能会认为这是另一项的ID重复的;然而,这两项目中的一个或多个字符的ID都会有不同的情况。
如果你要存储的项ID在数据库中检索后,建议字段大小是512个字节,所以它是大到足以容纳的GUID。
不要假设您的ID将始终是有效的,如果您需要在以后的时间检索项目。如果一个项目在存储中移动,该ID可以改变,因为移动的方式处理。实际上是复制的一个项目,并生成一个新的ID,然后删除原始项目。
在Exchange中的标识符是不透明的,例如,EwsId从一些信息中被创建,但对开发者来说并不重要,但对exchange是很重要的。
当你在exchange中使用Items时,需要记住ChangeKey属性,此值,除了项目标识之外,用于跟踪项目状态。任何时候一个项目发生了变化将产生一个新的changkey。当你执行updateitem操作时,例如你可以使用ChangeKey属性让服务器知道你的更新被应用于该项的最新版本。如果另一个应用程序更改了您正在更新的项目,更改将无法匹配,您将无法执行更新操作。
共同学习,写下你的评论
评论加载中...
作者其他优质文章