目前,我正致力于将一个大型项目从MAPI迁移到EWS (托管API2.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_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 )中找到,但其他属性和自定义道具存在问题。
因此,我们需要读写标准附件属性以及自定义。在项目中,我们标记附件本身,而不是嵌入项。
发布于 2016-03-28 03:35:31
在使API作为强类型属性访问的属性之外,不能访问EWS中附件或收件人集合上的扩展属性。唯一可以使用扩展属性的地方是消息级别。
这就是说,您可以解释如何使用扩展属性(例如,这些扩展属性在嵌入项上)。如果是这样的话,那么您可以通过项目附件访问这些扩展属性。
查看代码0x3705是附件上的PR_ATTACH_METHOD属性--在EWS中没有等效的属性,相反,EWS将根据附件类型返回不同的附件类。如ItemAttachment、FileAttachment或ReferanceAttachment (如用于OneDrive附件)。0x0E21是附件号EWS将按照GetItem请求中该数字的顺序返回附件,这样您就可以自己计算了。但是这个属性在EWS中是无用的,因为要获得一个附件,您需要EWSId (与MAPI不同)。
干杯格伦
https://stackoverflow.com/questions/36239718
复制相似问题