2016-07-01 5 views
0

Ich versuche, Zugriff auf die Exchange Global Address List Kontakt-Eigenschaft namens Notes (wie hier ->GAL Contact - Notes) zu programmieren. Ich verwende die verwaltete EWS-API in meiner Visual Studio-Anwendung (C# -Programmiersprache). Ich denke, die Logik meines Codes ist in Ordnung .. vielleicht nr.Contact.Notes ist nicht die richtige Option, wie das zu erreichen. Ich würde deine Hilfe sehr schätzen. Danke im Voraus!Zugriff auf die GAL MailContact-Eigenschaft von Exchange Notes mithilfe der EWS Managed API?

Hier ist mein 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 

Antwort

0

Solange Ihr Exchange 2010 SP2 oder greator verwenden, dann können Sie die ContactDataShape Überlastung in Resolve Name zB

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

die wie

XML verwenden produziert

<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

Hallo Glen, danke für Ihren Beitrag. Aber ich kann keinen Unterschied zwischen meinem und deinem Code sehen. Der einzige Unterschied besteht darin, PropertySet AllProps zu verwenden. Ist das die Schlüsselinformation für mein Problem? Mato –

+0

Ja, schauen Sie sich die Trace an, die es erzeugt, stellen Sie sicher, dass die ContactDataShape = "AllProperties" in der Anfrage gesetzt wird. Dies erfordert, dass 2010 SP2 funktioniert. (Übrigens sollten Sie zuerst den Code ausprobieren und dann Fragen zu den Ergebnissen stellen, die Sie erhalten). –

+0

Es funktioniert jetzt, vielen Dank !!! Ich weiß nicht, wie ich mit dieser XML-Datei arbeiten soll -> weiß nicht, wo ich sie finden kann. Das Wichtigste für mich war, dass 'PropertySet AllProps = new PropertySet (BasePropertySet.FirstClassProperties)'. Danke nochmal. M. –

Verwandte Themen