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

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


Articles referenced for the above sample code:

Hope this helps!

Comments (1)

  1. kapil jadhav says:

    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.

Skip to main content