Exchange web services: why is ItemId not constant?

后端 未结 3 1251
名媛妹妹
名媛妹妹 2020-12-17 16:50

I write a small application, which should automatically process the emails from a public folder. For each email, we want to save some metadata, in a database.

I wan

相关标签:
3条回答
  • 2020-12-17 17:28

    My understanding is, that the EWS unique id contains the EntryId in some form. Therefore, it will change once the element is moved to another folder.

    And while not applicable here, the situation is more complicated with calendar entries, as Exchange destroys and recreates an appointment under certain circumstances, thereby changing the unique id.

    This page (http://msdn.microsoft.com/en-us/library/cc815908.aspx) contains an overview over MAPI properties which can be used to identify an object. An alternative to this is that you can add your own id property to the Exchange element (via extended property).

    0 讨论(0)
  • 2020-12-17 17:33

    you have to convert the EntryItemId to EWS unique item id then you can use as primary key to create an entry into the DB

    Have a look at:

    http://blogs.msdn.com/b/brijs/archive/2010/09/09/how-to-convert-exchange-item-s-entryid-to-ews-unique-itemid-via-ews-managed-api-convertid-call.aspx

    0 讨论(0)
  • 2020-12-17 17:47

    Item ID Changes. It doesn't remain unique throughout. For accessing an item, one can use GUID.

    (The SOAP Request below is for fetching a calendar item.) You can fetch information about an item using GUID in a FindItem call

    
     <FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" 
          xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
         Traversal="Shallow">
      <ItemShape>
      <t:BaseShape>AllProperties</t:BaseShape>
      </ItemShape>
      <Restriction>
      <t:IsEqualTo>
      <t:ExtendedFieldURI PropertySetId="6ED8DA90-450B-101B-98DA-00AA003F1305" PropertyId="3" PropertyType="Binary" /> 
      <t:FieldURIOrConstant>
      <t:Constant Value="BAAAAJXIl1MJ8="/>  /* GUID */ 
      </t:FieldURIOrConstant>
      </t:IsEqualTo>
      </Restriction>
      <ParentFolderIds>
      <t:DistinguishedFolderId Id="calendar"/>
      </ParentFolderIds>
      </FindItem>
    
    0 讨论(0)
提交回复
热议问题