EWS Managed API 2.2 Read\Write 附件的扩展属性
EWS Managed API 2.2 Read\Write extended properties of attachments
目前我正在将一个大项目从 MAPI CDO 迁移到 EWS (Managed API 2.2) 以支持 Ex2016。所有东西都迁移得很好,除了一个:我找不到如何 read\write 附件扩展属性的方法。有谁知道该怎么做或者可能有一些解决方法?这对我来说非常重要,如果有任何帮助,我将不胜感激。
---更新:
还尝试使用本机 EWS 获取附件的 属性,但也没有成功:
var ret = esb.GetAttachment(new GetAttachmentType()
{
AttachmentIds = new []{new AttachmentIdType()
{
Id = "AAMkADVhNjUzMzMyLTRiMDYtNDc4OS1hYjJjLWI1ZDA4ZWFhYTJkZQBGAAAAAADqFaOFYZSeQI5UObwGbjIJBwAOgaos6ORVS5+o5bQovn/kAAAAeN2cAAAOgaos6ORVS5+o5bQovn/kAAAeCoIuAAABEgAQAJPAuRg2gipPmEKfgW26mFU=",
}},
AttachmentShape = new AttachmentResponseShapeType()
{
BodyType = BodyTypeResponseType.Best,
BodyTypeSpecified = true,
IncludeMimeContent = false,
IncludeMimeContentSpecified = true,
AdditionalProperties = new []
{
new PathToExtendedFieldType() { PropertyType = MapiPropertyTypeType.Integer, PropertyTag = "0x3705"},
new PathToExtendedFieldType() { PropertyType = MapiPropertyTypeType.Integer, PropertyTag = "0x0E21"},
}
}
});
响应不包含任何请求的属性。
--- 更新 2:
在项目中我们使用附件的下一个属性:
PR_RECORD_KEY、PR_DISPLAY_NAME、PR_RENDERING_POSITION
PR_ATTACH_ENCODING、PR_ATTACH_NUM、PR_ATTACH_METHOD、PR_ATTACH_LONG_FILENAME、PR_ATTACHMENT_HIDDEN、PR_ATTACH_CONTENT_ID、PR_ATTACH_FLAGS、PR_ATTACH_MIME_TAG、PR_ATTACH_CONTENT_LOCATION, PR_ATTACH_SIZE
我们还使用自定义 属性 创建了几个自定义扩展属性,并使用该道具设置和标记了一些附件。
某些属性可以在 EWS/ManagedApi 的对象模型中找到,例如 PR_ATTACH_SIZE,但其他属性和自定义道具存在问题。
因此我们需要 read/write 标准附件属性以及自定义。
在项目中我们标记附件本身,而不是嵌入项。
除了 API 可作为强类型属性访问的那些属性之外,您无法访问 EWS 中附件或收件人集合的扩展属性。唯一可以使用扩展属性的地方是在消息级别。
也就是说,您能否详细解释一下您如何使用扩展属性,例如,这些扩展属性是嵌入项目上的。如果是这种情况,那么您可以通过项目附件访问这些扩展属性。
查看您的代码 0x3705 是附件上的 PR_ATTACH_METHOD 属性 在 EWS 中没有与此等效的内容,EWS 将 return 一个不同的附件 Class基于附件类型。例如 ItemAttachment、FileAttachment 或 ReferanceAttachment(例如用于 OneDrive 附件)。 0x0E21 是附件号 EWS 将按照 GetItem 请求中该编号的顺序 return 附件,因此您可以自己计算。但是 属性 在 EWS 中是无用的,因为要获取附件,您需要 EWSId,这与 MAPI.
不同
干杯
格伦
目前我正在将一个大项目从 MAPI CDO 迁移到 EWS (Managed API 2.2) 以支持 Ex2016。所有东西都迁移得很好,除了一个:我找不到如何 read\write 附件扩展属性的方法。有谁知道该怎么做或者可能有一些解决方法?这对我来说非常重要,如果有任何帮助,我将不胜感激。
---更新: 还尝试使用本机 EWS 获取附件的 属性,但也没有成功:
var ret = esb.GetAttachment(new GetAttachmentType()
{
AttachmentIds = new []{new AttachmentIdType()
{
Id = "AAMkADVhNjUzMzMyLTRiMDYtNDc4OS1hYjJjLWI1ZDA4ZWFhYTJkZQBGAAAAAADqFaOFYZSeQI5UObwGbjIJBwAOgaos6ORVS5+o5bQovn/kAAAAeN2cAAAOgaos6ORVS5+o5bQovn/kAAAeCoIuAAABEgAQAJPAuRg2gipPmEKfgW26mFU=",
}},
AttachmentShape = new AttachmentResponseShapeType()
{
BodyType = BodyTypeResponseType.Best,
BodyTypeSpecified = true,
IncludeMimeContent = false,
IncludeMimeContentSpecified = true,
AdditionalProperties = new []
{
new PathToExtendedFieldType() { PropertyType = MapiPropertyTypeType.Integer, PropertyTag = "0x3705"},
new PathToExtendedFieldType() { PropertyType = MapiPropertyTypeType.Integer, PropertyTag = "0x0E21"},
}
}
});
响应不包含任何请求的属性。
--- 更新 2:
在项目中我们使用附件的下一个属性: PR_RECORD_KEY、PR_DISPLAY_NAME、PR_RENDERING_POSITION PR_ATTACH_ENCODING、PR_ATTACH_NUM、PR_ATTACH_METHOD、PR_ATTACH_LONG_FILENAME、PR_ATTACHMENT_HIDDEN、PR_ATTACH_CONTENT_ID、PR_ATTACH_FLAGS、PR_ATTACH_MIME_TAG、PR_ATTACH_CONTENT_LOCATION, PR_ATTACH_SIZE
我们还使用自定义 属性 创建了几个自定义扩展属性,并使用该道具设置和标记了一些附件。 某些属性可以在 EWS/ManagedApi 的对象模型中找到,例如 PR_ATTACH_SIZE,但其他属性和自定义道具存在问题。
因此我们需要 read/write 标准附件属性以及自定义。 在项目中我们标记附件本身,而不是嵌入项。
除了 API 可作为强类型属性访问的那些属性之外,您无法访问 EWS 中附件或收件人集合的扩展属性。唯一可以使用扩展属性的地方是在消息级别。
也就是说,您能否详细解释一下您如何使用扩展属性,例如,这些扩展属性是嵌入项目上的。如果是这种情况,那么您可以通过项目附件访问这些扩展属性。
查看您的代码 0x3705 是附件上的 PR_ATTACH_METHOD 属性 在 EWS 中没有与此等效的内容,EWS 将 return 一个不同的附件 Class基于附件类型。例如 ItemAttachment、FileAttachment 或 ReferanceAttachment(例如用于 OneDrive 附件)。 0x0E21 是附件号 EWS 将按照 GetItem 请求中该编号的顺序 return 附件,因此您可以自己计算。但是 属性 在 EWS 中是无用的,因为要获取附件,您需要 EWSId,这与 MAPI.
不同干杯 格伦