2017-03-28 1 views
1

Basé sur la description de la propriété AddressEntry.Address, j'attends ce qui suit pour "renvoyer une chaîne (chaîne en C#) représentant l'adresse de messagerie de l'adresse d'entrée."Récupération de l'adresse électronique d'un globalAddressList dans Outlook

Outlook.AddressList gal = Application.Session.GetGlobalAddressList(); 
    Outlook.AddressEntries ae = gal.AddressEntries; 
    List<string> email = new List<string>(); 

    foreach (Outlook.AddressEntry e in ae) 
    { 
     email.Add(e.Address); 
    } 

plutôt la liste e-mail se remplit avec des cordes qui ressemblent à ...

"/o=companyName/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=firstname.lastname" 

Je préférerais retourner quelque chose comme ....

[email protected] 

Comment suis-je en utilisant cela incorrectement?

Répondre

2

Si AddressEntry.Type == "EX", utilisez AddressEntry.GetExchangeUser().PrimarySmtpAddress. Soyez prêt à gérer les valeurs NULL et les exceptions.

+0

Merci. Je ne sais pas comment je l'aurais rencontré à travers la documentation. Correct, nécessaire pour gérer les valeurs nulles et les captures, mais encore, avec 1000 adresses dans la liste de contacts globale, cela a pris 2 minutes à charger. Aie!!! –

+0

Faire une boucle sur des milliers d'entrées dans GAL n'est jamais une bonne idée. Redemption peut être une meilleure option si vous souhaitez utiliser une table MAPI à la place. –