0

我正在使用 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();

    }
}

如果我使用相同的代码在我发送的新电子邮件上设置属性,那么在收到该电子邮件时我确实会看到该属性。即不在已发送邮件中的邮件上,而是在到达某人收件箱的邮件中。

4

1 回答 1

1

MIME 标头的唯一更新时间是在发送或接收消息期间。您所做的所有代码都是设置一个扩展属性(然后在发送时将其提升为消息头)这里有更多解释https://msdn.microsoft.com/en-us/library/office/hh545614(v =exchg.140).aspx

您在 Outlook 中看到的是 PR_Transport_headers 属性,您也可以修改它,但不会影响 MIME 内容。为什么重要的是您能够看到始终可以通过 EWS 访问的属性。

于 2016-07-25T02:48:26.703 回答