我正在使用 EWS 与 Exchange 进行交互。当我找到一封传入的电子邮件时,我在该邮件上设置了一个自定义扩展属性,以与我的数据库中的 ID 相关联。该属性被保存到交换,我可以稍后在查询交换时检索该值。但是当我在 Outlook 中打开该项目时,我看不到标题:它没有列在电子邮件属性中。我需要做一些特别的事情才能看到它吗?
这是我的代码:
var propertyDefinition = new ExtendedPropertyDefinition(
DefaultExtendedPropertySet.InternetHeaders, "X-My-Property",
MapiPropertyType.String);
// 从 ExchangeService.FindItems() 中检索项目 var item = ...
// Set the property on the exchange item
item.SetExtendedProperty(propertyDefinition, myId.ToString());
// Update the server
item.Update(ConflictResolutionMode.AlwaysOverwrite);
现在,当我查看交换项目时,我希望在标题中看到“X-My-Property”,但我没有。
我可以检索使用此代码的值:
foreach (var prop in item.ExtendedProperties)
{
if (prop.PropertyDefinition.Name == "X-My-Property" && prop.Value != null)
{
return propValue = prop.Value.ToString();
}
}
如果我使用相同的代码在我发送的新电子邮件上设置属性,那么在收到该电子邮件时我确实会看到该属性。即不在已发送邮件中的邮件上,而是在到达某人收件箱的邮件中。