Accéder aux propriétés utilisateur Outlook à partir du serveur Web intégré

J’essaie de créer une application utilisant l’API EWS pour accéder aux contacts.

Je dois examiner l’une des propriétés de l’utilisateur Outlook dans ce processus, mais je ne vois pas comment l’obtenir en utilisant EWS. Pour le moment, je viens d’essayer …

service.Url = new Uri("https://url/ews/Exchange.asmx"); service.Credentials = new WebCredentials("credentials"); var results = service.FindItems(folderId, new ItemView(100)); foreach (var item in results) { Contact contact = item as Contact; foreach (var prop in contact.ExtendedProperties) { Console.WriteLine(prop.Value.ToSsortingng()); } } 

Ce qui comstack et s’exécute sans problème, mais pour chaque contact, le nombre de propriétés étendues est égal à 0, ce qui représente environ 30.

Alors, comment puis-je obtenir les propriétés que je cherche?

Juste un FYI. J’utilise exhcnage 2007.

Merci.

Vous devez définir les propriétés que vous souhaitez obtenir. EWS ne vous permet pas d’énumérer les propriétés de l’utilisateur.

Les propriétés utilisateur se trouvent dans l’espace de noms PublicSsortingngs.

 private static readonly ExtendedPropertyDefinition CustomProperty = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicSsortingngs, "MyCustomProperty", MapiPropertyType.Ssortingng); 

Vous pouvez ensuite utiliser la définition dans une requête FindItems:

 var items = service.FindItems(WellKnownFolderName.Inbox, new ItemView(100) { PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, CustomProperty)}); 

J’ai eu le même problème, résolu.

 var customProp1 = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicSsortingngs, "myCustomPropOne", MapiPropertyType.Ssortingng); var customProp2 = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicSsortingngs, "myCustomPropTwo", MapiPropertyType.Ssortingng); var userFields = new ExtendedPropertyDefinition[] { customProp1, customProp2 }; var extendedPropertySet = new PropertySet(BasePropertySet.FirstClassProperties, userFields); var contactItems = service.FindItems(WellKnownFolderName.Contacts, new ItemView(100) { PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, extendedPropertySet) }); // Looping contacts foreach (Item item in contactItems){ object firstProp; if (item.TryGetProperty(customProp1, out firstProp) && firstProp != null) { var val = firstProp.ToSsortingng(); } object secondProp; if (item.TryGetProperty(customProp2, out secondProp) && secondProp != null) { var val = secondProp.ToSsortingng(); } } // loop ends 

myCustomPropOne & myCustomPropTwo sont les noms des propriétés définies par l’utilisateur que vous avez définies dans Outlook / editor. ref