Synchroniser ses contacts avec Microsoft exchange en C#
Bonjour,
je réalise une application qui doit ajouter à exchange ses contactes, afin qu'il soit visible sur Outlook. Pour cela j'utilise EWS Managed API.
Jusque là aucun problème.
Mon problème intervient pour la visibilité des données dans le carnet d'adresse d'Outlook.
En remplissant tous les champs possible pour un contact depuis mon programme c# :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
Contact contact = new Contact(exchangeService);
//Contact
contact.AssistantName = "-Assistant Name-";
contact.Birthday = DateTime.Today;
contact.Body = "-body-";
contact.BusinessHomePage = "-Buisness Home Page-";
StringList sl = new StringList();
sl.Add("-Categories1-");
sl.Add("-Categories2-");
contact.Categories = sl;
sl = new StringList();
sl.Add("-Children1-");
sl.Add("-Children2-");
contact.Children = sl;
sl = new StringList();
sl.Add("-Companies1-");
sl.Add("-Companies2-");
contact.Companies = sl;
contact.CompanyName = "-CompanyName-";
contact.Department = "-Department-";
contact.DisplayName = "-DisplayName-";
contact.EmailAddresses[EmailAddressKey.EmailAddress1] = "ImAddressKey@ImAddress1.fr";
contact.EmailAddresses[EmailAddressKey.EmailAddress2] = "ImAddressKey2@ImAddress1.fr";
contact.EmailAddresses[EmailAddressKey.EmailAddress3] = "ImAddressKey3@ImAddress1.fr";
contact.Generation = "-generation-";
contact.GivenName = "-GivenName-";
contact.ImAddresses[ImAddressKey.ImAddress1] = "ImAddressKey@ImAddress1.fr";
contact.ImAddresses[ImAddressKey.ImAddress2] = "ImAddressKey@ImAddress2.fr";
contact.ImAddresses[ImAddressKey.ImAddress3] = "ImAddressKey@ImAddress3.fr";
contact.Initials = "-Initial-";
contact.InReplyTo = "-InReplyTo-";
contact.JobTitle = "-JobTitle-";
contact.Manager = "-Manager-";
contact.MiddleName = "-MiddleName";
contact.Mileage = "-Mileage-";
contact.NickName = "-Nickname-";
contact.OfficeLocation = "-Officelocation-";
contact.PhoneNumbers[PhoneNumberKey.BusinessPhone] = "-PhoneNumberKey.BusinessPhone-";
contact.PhoneNumbers[PhoneNumberKey.MobilePhone] = "-PhoneNumberKey.MobilePhone-";
contact.PhoneNumbers[PhoneNumberKey.BusinessFax] = "-PhoneNumberKey.BusinessFax-";
PhysicalAddressEntry paEntry1 = new PhysicalAddressEntry();
paEntry1.Street = "-streetHome-";
paEntry1.City = "-cityHome-";
paEntry1.PostalCode = "-PostalCodeHome-";
paEntry1.CountryOrRegion = "-CountryRegionHome-";
paEntry1.State = "-stateHome-";
PhysicalAddressEntry paEntry2 = new PhysicalAddressEntry();
paEntry2.Street = "-streetBusiness-";
paEntry2.City = "-cityBusiness-";
paEntry2.PostalCode = "-PostalCodeBusiness-";
paEntry2.CountryOrRegion = "-CountryRegionBusiness-";
paEntry2.State = "-stateBusiness-";
PhysicalAddressEntry paEntry3 = new PhysicalAddressEntry();
paEntry3.Street = "-streetOther-";
paEntry3.City = "-cityOther-";
paEntry3.PostalCode = "-PostalCodeOther-";
paEntry3.CountryOrRegion = "-CountryRegionOther-";
paEntry3.State = "-stateOther-";
contact.PhysicalAddresses[PhysicalAddressKey.Home] = paEntry1;
contact.PhysicalAddresses[PhysicalAddressKey.Business] = paEntry2;
contact.PhysicalAddresses[PhysicalAddressKey.Other] = paEntry3;
contact.Profession = "-profession-";
contact.SpouseName = "-SpouseName-";
contact.Subject = "-Subject-";
contact.Surname = "-Surname-";
contact.WeddingAnniversary = DateTime.UtcNow;
contact.Save(); |
J'obtiens bien une fiche dans la liste des contacts mais 4 dans le carnet d'adresse avec l'adresse de messagerie vide :
http://i66.servimg.com/u/f66/10/06/37/07/imprec10.png
Le fait d'ouvrir la fiche et de la refermer en refusant la sauvegarde me fait bien le bonne affichage :
http://i66.servimg.com/u/f66/10/06/37/07/impr210.jpg
Ma question est comment arrivé à ce que les emails s'affichent (comme pour le fax ) sans avoir à ouvrir les 3000 contacts qui seront importés?
je n'ai trouvé pratiquement aucune aide/doc/tuto/exemple sur EWS managed API excepté celle de MSND qui est vraiment incomplète.
Donc si vous en avez je suis preneur.
Merci pour votre aide
Anthony