通过 EWS 检索标记为 属性 的 Outlook Office365
Retrieve the Outlook Office365 Flagged property through EWS
在 Outlook Office365 中,您可以标记个别邮件。
切换此标志会在 SyncFolderItems
-请求中提供一个 updated
-条目。这个 属性 在获取项目时似乎不是 Default
属性的一部分,甚至 AllProperties
,所以我猜它是一个扩展的 属性.
如何通过 EWS 获得它?我想支持 Exchange 2010。
这是ItemSchema.Flag 属性.
当你使用 SyncFolderItems 时,做这样的事情来读取这样的 属性:
var property_set = new PropertySet(ItemSchema.Flag, ItemSchema.Id);
var result = service.SyncFolderItems(folder_id, property_set, new ItemId[] { }, 10,
SyncFolderItemsScope.NormalItems, sync_state);
foreach (var result_item in result)
{
var flag = result_item.Item.Flag;
}
flag
变量的类型为 Flag。查看其 FlagStatus 成员,了解如何检测该项目是否已标记。
由于这仅适用于 Exchange 2013,下面是 Exchange 2010 的解决方法:
var flag_property = new ExtendedPropertyDefinition(0x1090 , MapiPropertyType.Integer);
var property_set = new PropertySet(flag_property, ItemSchema.Id);
var result = service.SyncFolderItems(WellKnownFolderName.Inbox, property_set, new ItemId[] { }, 10,
SyncFolderItemsScope.NormalItems, sync_state);
foreach (var result_item in result)
{
var flag = result_item.Item.ExtendedProperties.FirstOrDefault(x => x.PropertyDefinition == flag_property);
if (flag == null)
{
//Item is not flagged
}
else if((int)flag.Value == 1)
{
//Item is makred complete
}
else if ((int)flag.Value == 2)
{
//Item is flagged
}
}
这是基于PidTagFlagStatus属性。请注意,文档说明这不适用于会议或任务项。
在 Outlook Office365 中,您可以标记个别邮件。
切换此标志会在 SyncFolderItems
-请求中提供一个 updated
-条目。这个 属性 在获取项目时似乎不是 Default
属性的一部分,甚至 AllProperties
,所以我猜它是一个扩展的 属性.
如何通过 EWS 获得它?我想支持 Exchange 2010。
这是ItemSchema.Flag 属性.
当你使用 SyncFolderItems 时,做这样的事情来读取这样的 属性:
var property_set = new PropertySet(ItemSchema.Flag, ItemSchema.Id);
var result = service.SyncFolderItems(folder_id, property_set, new ItemId[] { }, 10,
SyncFolderItemsScope.NormalItems, sync_state);
foreach (var result_item in result)
{
var flag = result_item.Item.Flag;
}
flag
变量的类型为 Flag。查看其 FlagStatus 成员,了解如何检测该项目是否已标记。
由于这仅适用于 Exchange 2013,下面是 Exchange 2010 的解决方法:
var flag_property = new ExtendedPropertyDefinition(0x1090 , MapiPropertyType.Integer);
var property_set = new PropertySet(flag_property, ItemSchema.Id);
var result = service.SyncFolderItems(WellKnownFolderName.Inbox, property_set, new ItemId[] { }, 10,
SyncFolderItemsScope.NormalItems, sync_state);
foreach (var result_item in result)
{
var flag = result_item.Item.ExtendedProperties.FirstOrDefault(x => x.PropertyDefinition == flag_property);
if (flag == null)
{
//Item is not flagged
}
else if((int)flag.Value == 1)
{
//Item is makred complete
}
else if ((int)flag.Value == 2)
{
//Item is flagged
}
}
这是基于PidTagFlagStatus属性。请注意,文档说明这不适用于会议或任务项。