How to get Extended MAPI Properties in the GetItem Exchange Web Service call?

How to get Extended MAPI Properties in the GetItem Exchange Web Service call?

  • Comments 1

We can get/set Extended MAPI Properties using Exchange Web Services for Exchange Server 2007/2010.

Here is sample code snippet to get value for CleanGlobalObjectID via GetItem call of Exchange Web Services:

NOTE: Following programming examples is for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This sample code assumes that you are familiar with the programming language being demonstrated and the tools used
to create and debug procedures.

private void fnGetCalItem()
        {
            // Form the GetItem request
            GetItemType getRequest = new GetItemType();
 
            // Define which item properties are returned in the response
            ItemResponseShapeType itemProperties = new ItemResponseShapeType();
            itemProperties.BaseShape = DefaultShapeNamesType.AllProperties;
 
            // Add properties shape to request
            getRequest.ItemShape = itemProperties;
 
            // Set the itemID of the desired item to retrieve
            ItemIdType id = new ItemIdType();
            id.Id = itemID;
            getRequest.ItemIds = new ItemIdType[] { id };
 
 
            PathToExtendedFieldType[] pteft = new PathToExtendedFieldType[1];
 
            pteft[0] = new PathToExtendedFieldType();
            
            //Add CleanGlobalObjectID extended property 
            pteft[0].PropertyId = 35;
            pteft[0].PropertyIdSpecified = true;
            pteft[0].PropertySetId  = "6ED8DA90-450B-101B-98DA-00AA003F1305" ; 
            pteft[0].PropertyType = MapiPropertyTypeType.Binary;
            itemProperties.AdditionalProperties = pteft;
 
            // Send the listing (find) request and get the response
            GetItemResponseType getResp = binding.GetItem(getRequest);
 
            // Get the response message
            if (getResp.ResponseMessages.Items[0].ResponseClass == ResponseClassType.Success)
            {
                ItemInfoResponseMessageType iirmt = getResp.ResponseMessages.Items[0] as ItemInfoResponseMessageType;
                itemGCOID = iirmt.Items.Items[0].ExtendedProperty[0].Item.ToString() ;
             }
            else
            {
                Console.WriteLine(getResp.ResponseMessages.Items[0]);
            }
        }

 

Articles referenced for the above sample code:

Hope this helps!

Leave a Comment
  • Please add 2 and 1 and type the answer here:
  • Post
  • you are just awesome, it worked for me, was trying it for last 72 hours and have browsed around 50 blogs. Just this one worked.... thanks a lot.

Page 1 of 1 (1 items)