Outlook 扩展属性概述

命名空间:microsoft.graph

扩展属性允许存储自定义数据,并特别用作一种回退机制,供应用在 Microsoft 图形 API metadata_中尚未公开这些属性时访问 Outlook MAPI 属性的自定义数据。 可以使用扩展属性 REST API 在以下用户资源中存储或获取此类自定义数据:

或者,在以下 Microsoft 365 组资源中:

使用扩展属性还是开放扩展?

在大多数的常见情况下,你应该能够使用开放扩展(用 openTypeExtension 表示,以前被称为 Office 365 数据扩展)来存储和访问用户邮箱中资源实例的自定义数据。 仅当需要访问尚未在 Microsoft 图形 API元数据中公开的 Outlook MAPI 属性的自定义数据时,才使用扩展属性。

扩展属性的类型

根据是否打算将单个值或多个值(相同类型)存储在一个扩展属性中,可以将扩展属性创建为 singleValueLegacyExtendedPropertymultiValueLegacyExtendedProperty

其中的每种类型都通过其 id 进行标识并将数据存储在 value 中。

可以使用 id 获取特定的资源实例以及该扩展属性,或筛选单值扩展属性以获取拥有该属性的所有实例。

注意 不能使用 REST API 在一次调用中获取特定实例的所有扩展属性。

id 格式

可以使用以下三种格式之一指定扩展属性的 id

  • 作为命名属性,由扩展属性类型、名称空间和字符串名称标识。
  • 作为命名属性,由扩展属性类型、名称空间和数字标识符标识。
  • 采用属性标记格式,由扩展属性类型和 MAPI 属性标记标识。

接下来的两个表描述了应用于单值和多值扩展属性的这些格式。 {type} 表示一个或多个扩展属性值的类型。 示例中使用的是 string、integer 和这些类型的数组。

单值扩展属性的有效 id 格式

格式 示例 说明
"{type} {guid} Name {name}" "String {8ECCC264-6880-4EBE-992F-8888D2EEAA1D} Name TestProperty" 用所属的命名空间 (GUID) 和字符串名称标识属性。
"{type} {guid} Id {id}" "Integer {8ECCC264-6880-4EBE-992F-8888D2EEAA1D} Id 0x8012" 用所属的命名空间 (GUID) 和数字标识符标识属性。
"{type} {proptag}" "String 0x4001" 通过属性标记标识预定义属性。

多值扩展属性的有效 id 格式

格式 示例 说明
"{type} {guid} Name {name}" "StringArray {8ECCC264-6880-4EBE-992F-8888D2EEAA1D} Name TestProperty" 用命名空间 (GUID) 和字符串名称标识属性。
"{type} {guid} Id {id}" "IntegerArray {8ECCC264-6880-4EBE-992F-8888D2EEAA1D} Id 0x8013" 用命名空间 (GUID) 和数字标识符标识属性。
"{type} {proptag}" "StringArray 0x4002" 通过属性标记标识预定义属性。

使用任一命名属性格式将单值或多值扩展属性定义为自定义属性。 在这两种格式中,第一种采用字符串名称 (Name) 的格式是易于参考的首选格式。 命名属性的属性标识符在 0x8000-0xfffe 范围内。

使用 proptag 格式访问 MAPI 或客户端或服务器预定义的属性,这些属性尚未在 Microsoft Graph 中公开。 这些属性的属性标识符在 0x0001-0x7fff 范围内。 不要尝试使用 proptag 格式定义自定义属性。

可以在 [MS-OXPROPS] Microsoft Corporation 的“Exchange Server协议主属性列表”中找到有关将扩展属性映射到现有 MAPI 属性的信息,例如属性标识符和 GUID。

注意:为 id 选择一种格式后,只能按此格式访问扩展属性。

REST API 操作

单值扩展属性的操作:

多值扩展属性的操作: