2016-07-01 6 views
0

J'essaye d'accéder par programme à la propriété de contact de liste d'adresses globale d'échange appelée notes (comme ici ->GAL Contact - Notes). J'utilise EWS Managed API dans mon application Visual Studio (langage de programmation C#). Je pense que la logique de mon code est OK .. peut-être nr.Contact.Notes n'est pas la bonne option comment y parvenir. J'apprécierais vraiment votre aide. Merci d'avance!Comment accéder à la propriété Exchange GAL MailContact Remarques à l'aide de l'API EWS Managed?

Voici mon code:

NameResolutionCollection nrCol = service.ResolveName("SMTP:", ResolveNameSearchLocation.DirectoryOnly, true); 
      foreach (NameResolution nr in nrCol) 
      { 
       if (nr.Contact.Notes == "mail_user") 
       { 
        Console.WriteLine("^^^^^^^DO SOMETHING^^^^^^^"); 
       } // end of if (nr.Contact.Notes == "mail_user") 


      } // end of foreach 

Répondre

0

Tant que votre utilisation d'Exchange 2010 SP2 ou greator vous pouvez utiliser la surcharge ContactDataShape dans le nom de Resolve par exemple

PropertySet AllProps = new PropertySet(BasePropertySet.FirstClassProperties); 
    NameResolutionCollection ncCol = service.ResolveName("[email protected]", ResolveNameSearchLocation.DirectoryOnly, true, AllProps); 
    foreach (NameResolution nr in ncCol) 
    { 
     Console.WriteLine(nr.Contact.Notes); 
    } 

qui produit XML comme

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
 
    <soap:Header> 
 
     <t:RequestServerVersion Version="Exchange2013_SP1" /> 
 
    </soap:Header> 
 
    <soap:Body> 
 
     <m:ResolveNames ReturnFullContactData="true" SearchScope="ContactsActiveDirectory" ContactDataShape="AllProperties"> 
 
     <m:UnresolvedEntry>[email protected]</m:UnresolvedEntry> 
 
     </m:ResolveNames> 
 
    </soap:Body> 
 
    </soap:Envelope>

+0

Salut Glen, merci pour votre message. Mais je ne vois pas de différence entre le mien et le vôtre. La seule différence est d'utiliser PropertySet AllProps. Est-ce l'information clé pour mon problème? Mato –

+0

Oui, regardez la trace qu'il génère, assurez-vous que ContactDataShape = "AllProperties" est défini dans la requête. Cela nécessite 2010 SP2 pour fonctionner. (BTW vous devriez d'abord essayer le code puis poser des questions sur les résultats que vous obtenez). –

+0

Ça marche maintenant, merci beaucoup !!! Je ne sais pas comment travailler avec ce fichier XML -> même ne sais pas où le trouver. L'important pour moi était que 'PropertySet AllProps = new PropertySet (BasePropertySet.FirstClassProperties)'. Thx à nouveau. M. –