0

我正在使用EWS與Exchange進行交互。當我找到收到的電子郵件時,我在該郵件上設置了一個自定義擴展屬性,以與我的數據庫中的ID相關聯。該屬性保存爲交換,並且在查詢交換時我可以稍後檢索該值。但是,當我在Outlook中打開該項目時,我看不到標題:它未在電子郵件屬性中列出。有什麼特別的我需要做的,這是可見的?如何在標題中顯示現有項目中的ExtendedProperty?

這裏是我的代碼:

var propertyDefinition = new ExtendedPropertyDefinition(
     DefaultExtendedPropertySet.InternetHeaders, "X-My-Property", 
     MapiPropertyType.String); 

//從ExchangeService.FindItems() VAR項目=項目...

// 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(); 

    } 
} 

如果我使用相同的代碼來設置,我再發新的電子郵件的財產我看到的屬性時該電子郵件已收到。即不是發送郵件中的郵件,而是發送到某人收件箱中的郵件。

回答

1

MIME報頭將被更新的唯一時間是在發送或接收消息期間。您的代碼所做的是設置一個擴展屬性(隨後將在發送時將其提升爲消息頭)此處有更多解釋https://msdn.microsoft.com/en-us/library/office/hh545614(v=exchg.140).aspx

您在Outlook中看到的是您可以修改的PR_Transport_headers屬性,但該屬性不會影響MIME內容。無論如何,爲什麼重要的是你能夠看到它應該始終可以通過EWS訪問的屬性。

+0

謝謝@GlenScales。我希望能夠看到該消息,以便最終用戶可以檢查ID是否出於故障排除的原因,如果事情沒有按預期工作。這不是一個很大的要求,我只是認爲如果可能的話它會很好。根據你的答案,這是不可能的,所以我會把它作爲一個擴展屬性。 – Rory

相關問題