Exchange server EWS管理的API 2.2附件的读\写扩展属性

Exchange server EWS管理的API 2.2附件的读\写扩展属性,exchange-server,exchangewebservices,ews-managed-api,Exchange Server,Exchangewebservices,Ews Managed Api,目前,我正在将一个大型项目从MAPI CDO迁移到EWS(托管API 2.2),以支持Ex2016。所有东西都迁移得很好,除了一个:我找不到如何读取\写入附件扩展属性的方法。有人知道怎么做吗?或者可能是一些解决办法?这对我来说非常关键,我将非常感谢您的帮助 ---更新: 还尝试使用本机EWS获取附件属性,但也没有成功: var ret = esb.GetAttachment(new GetAttachmentType() { Attachm

目前,我正在将一个大型项目从MAPI CDO迁移到EWS(托管API 2.2),以支持Ex2016。所有东西都迁移得很好,除了一个:我找不到如何读取\写入附件扩展属性的方法。有人知道怎么做吗?或者可能是一些解决办法?这对我来说非常关键,我将非常感谢您的帮助

---更新: 还尝试使用本机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_记录键、PR_显示键、PR_名称、PR_渲染键、PR_位置 PR_ATTACH_编码、PR_ATTACH_NUM、PR_ATTACH_方法、PR_ATTACH_LONG_文件名、PR_ATTACH_HIDDEN、PR_ATTACH_CONTENT_ID、PR_ATTACH_标志、PR_ATTACH_MIME_标记、PR_ATTACH_CONTENT_位置、PR_ATTACH_大小

此外,我们还使用自定义属性集创建了两个自定义扩展属性,并使用该道具标记一些附件。 在EWS/ManagedApi的对象模型中可以找到一些属性,如PR_ATTACH_SIZE,但其他属性和自定义道具存在问题

因此,我们需要读/写标准附件属性以及自定义属性。
在project中,我们标记的是附件本身,而不是嵌入项。

在API作为强类型属性进行访问的属性之外,您无法访问EWS中附件或收件人集合的扩展属性。您只能在消息级别使用扩展属性

也就是说,你能解释一下你是如何使用扩展属性的吗?例如,这些扩展属性是嵌入项上的吗。如果是这种情况,那么您可以通过项目附件访问这些扩展属性

查看您的代码0x3705是附件上的PR_ATTACH_METHOD属性在EWS中没有与此等效的属性,相反,EWS将根据附件类型返回不同的附件类。例如ItemAttachment、FileAttachment或ReferenceAttachment(例如OneDrive附件)。0x0E21表示附件编号EWS将按照GetItem请求中该编号的顺序返回附件,以便您自己计算。但是,该属性在EWS中是无用的,因为要获取附件,您需要EWSId而不是MAPI

干杯
格伦

嗨,格伦,非常感谢你的回复。检查请更新2。您说过“您唯一可以使用扩展属性的地方是在消息级别。”。您是指EWS it self的邮件低级(非托管API)还是指EmailMessage/联系人/约会等?您只能在EWS中的项目级别获取/设置扩展属性(无论使用何种方法),无法在附件或收件人上获取这些属性(就像在MAPI中一样)。您需要重新设计应用程序,例如,虽然不能在附件上使用扩展属性,但可以在项目上创建自定义属性,该属性只映射附件上所需的任何属性。然后只需重新映射您的逻辑,以查看该属性,但您将找不到您所需的一对一映射。