使用 EWS 读取 Exchange Server 上的所有自定义属性
Posted
技术标签:
【中文标题】使用 EWS 读取 Exchange Server 上的所有自定义属性【英文标题】:Reading ALL custom properties on Exchange Server with EWS 【发布时间】:2013-05-14 09:56:13 【问题描述】:我想从 EWS-Items 中读取所有“自定义属性”。我确实有属性的名称(例如“持续时间”或“距离”),但我没有创建它们(我的客户做了)。
我想我将不得不使用“Item”类的“ExtendedProperties”。但是当我将 Item.Bind() 与 Property-set 一起使用时,我需要知道我没有的 GUID!微软说 (http://msdn.microsoft.com/en-us/library/exchange/dd633697%28v=exchg.80%29.aspx): "从创建扩展属性时使用的 GUID 创建一个 GUID 标识符。"
我没有这些 GUID,因为我没有创建属性。 我想唯一的机会是在没有特定属性集的情况下使用 Item.Bind() 。这会减慢这个过程吗(我需要为邮箱中的每个项目调用它)?
我基本上想用这样的子句进行迭代: if (extendedProperty.PropertyDefinition.Name == "duration")
任何想法如何做到这一点?
谢谢
马丁
【问题讨论】:
【参考方案1】:尝试使用 PropertyDefinition 和属性类型 (MapiPropertyType) 按名称恢复它:
//搜索“duration”属性
Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition extendedPropertyDefinition =
new Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition
(DefaultExtendedPropertySet.Common, "duration", MapiPropertyType.String);
EmailMessage msgMod = EmailMessage.Bind(service, msgComplete.Id,
new PropertySet(extendedPropertyDefinition));
ExtendedPropertyCollection colProp = msgMod.ExtendedProperties;
foreach (ExtendedProperty prop in colProp)
//Iterate properties
【讨论】:
以上是关于使用 EWS 读取 Exchange Server 上的所有自定义属性的主要内容,如果未能解决你的问题,请参考以下文章
使用 EWS(Exchange Web Service)协议读取邮件发送邮件
导入 Exchange Web 服务 (EWS) wsdl 文件时如何修复未解析的类型?