我正在使用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();
}
}
如果我使用相同的代码在我发送的新电子邮件上设置属性,那么我会在收到该电子邮件时看到该属性。即不在已发送邮件中的邮件中,而是在收件人收件箱中的邮件中。
答案 0 :(得分:1)
唯一一次更新MIME标头是在发送或接收邮件期间。您的所有代码都在设置扩展属性(然后在发送时将其提升为消息标题)这里有更多解释https://msdn.microsoft.com/en-us/library/office/hh545614(v=exchg.140).aspx
您在Outlook中看到的是PR_Transport_headers属性,您也可以修改该属性但不会影响MIME内容。为什么重要的是你能够看到它应该总是可以通过EWS访问它。