2015-08-18 5 views
0

Я использую следующий запрос SOAP для извлечения элементов в папке контактов в офисе 365 почты надстройкеПолучить Контакты папки элементов с помощью EWS в офисе 365

'<?xml version="1.0" encoding="UTF-8"?>'+ 
    ' <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' + 
    ' xmlns:xsd="http://www.w3.org/2001/XMLSchema"' + 
      ' xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"'+ 
      ' xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">'+ 
    ' <soap:Header>'+ 
     ' <t:RequestServerVersion Version="Exchange2013" />' + 
    ' </soap:Header>'+ 
    ' <soap:Body >'+ 
     ' <m:FindPeople>'+ 
      ' <m:IndexedPageItemView BasePoint="Beginning" MaxEntriesReturned="100" Offset="0"/>'+ 
      ' <m:ParentFolderId>'+ 
      ' <t:DistinguishedFolderId Id="contacts"/>'+ 
      ' </m:ParentFolderId>'+ 
     ' </m:FindPeople>'+ 
    ' </soap:Body>'+ 
    ' </soap:Envelope>'; 

Но следующая ошибка появляется.

error

Я использовал FindItem, методы GetFolder для папки календаря и те работают.

Есть ли способ поиска адреса электронной почты людей, используя имя в качестве значения поиска.

ответ

0

makeEwsRequestAsync в почтовых приложениях поддерживает только подмножество операций EWS, которые FindPeople не является одним из. Вы можете увидеть полный список поддерживаемых операций на https://msdn.microsoft.com/en-us/library/office/fp160952.aspx.

Есть в любом случае искать людей, адрес электронной почты, используя имя в качестве поискового значения.

Конечно просто использовать FindItem с ограничением на DisplayName например

<?xml version="1.0" encoding="utf-8" ?> 
 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m=" 
 
http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://sc 
 
hemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xml 
 
soap.org/soap/envelope/"> 
 
    <soap:Header> 
 
    <t:RequestServerVersion Version="Exchange2013_SP1" /> 
 
    </soap:Header> 
 
    <soap:Body> 
 
    <m:FindItem Traversal="Shallow"> 
 
     <m:ItemShape> 
 
     <t:BaseShape>AllProperties</t:BaseShape> 
 
     </m:ItemShape> 
 
     <m:IndexedPageItemView MaxEntriesReturned="1000" Offset="0" BasePoint="Beginning" /> 
 
     <m:Restriction> 
 
     <t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase"> 
 
      <t:FieldURI FieldURI="contacts:DisplayName" /> 
 
      <t:Constant Value="Blah blah" /> 
 
     </t:Contains> 
 
     </m:Restriction> 
 
     <m:ParentFolderIds> 
 
     <t:DistinguishedFolderId Id="contacts" /> 
 
     </m:ParentFolderIds> 
 
    </m:FindItem> 
 
    </soap:Body> 
 
</soap:Envelope>

Приветствий Глен

+0

Ответом всегда пусто. Я попытался с точными именами, как в моей папке контактов. :( – Selva

+0

Что делать, если вы делаете один и тот же запрос без ограничений в этом случае, вы должны просто получить все контактные элементы в папке «Контакты», если вы не запрашиваете правильную папку –

+0

да. Без ограничений, ответ по-прежнему пуст Но данные людей будут находиться в папке контактов, правильно? – Selva