c# outlook street-address

c# - Usando el modelo de objetos de Outlook, ¿puedo obtener los campos que veo en el contacto de Outlook?



street-address (4)

Puedo buscar en la libreta de direcciones global utilizando el modelo de objetos de Outlook, pero de todos modos, si uso el modelo de objetos de Outlook de csharp puedo obtener las siguientes propiedades de una persona:

Ciudad, Estado, País / Región Alias ​​Título Teléfono

parece que no puedo encontrar estas propiedades en el objeto AddressEntry.

EDITAR: Empecé una recompensa aquí. Lo hice funcionar usando consultas LDAP, pero son un gran problema. Estoy sorprendido de que las perspectivas no respalden esto en su api simple. quería ver si alguien más funcionaba o puede explicar / justificar por qué Outlook no tendría soporte para esto



Usando Microsoft.Office.Interop.Outlook
Necesita utilizar el objeto ExchangeUser y el método GetExchangeUser en el objeto AddressEntry.

using System; using Microsoft.Office.Interop.Outlook; static class Program { static void Main(string[] args) { ExchangeUser oExUser; Application app = new Microsoft.Office.Interop.Outlook.Application(); foreach (AddressList addressList in app.Session.AddressLists) { if (addressList.Name == "Global Address List") { foreach (AddressEntry item in addressList.AddressEntries) { Console.WriteLine(item.Address); oExUser = item.GetExchangeUser(); if (oExUser != null) { Console.WriteLine(oExUser.FirstName); Console.WriteLine(oExUser.LastName); Console.WriteLine(oExUser.StreetAddress); Console.WriteLine(oExUser.CompanyName); Console.WriteLine(oExUser.Department); Console.WriteLine(oExUser.OfficeLocation); Console.WriteLine(oExUser.JobTitle); } Console.WriteLine(); } } } Console.Read(); } }


Como siempre, cuando tengo que trabajar con el modelo de objetos de Outlook, recomiendo usar la biblioteca de Redención . (Implicaría COM Interop desde C #, pero eso no debería ser un problema.) Allí debería echar un vistazo a la biblioteca RDO (Redemption Data Objects) , y allí a los objetos RDOAddressBook y RDOAddressEntry . El objeto RDOAddressEntry expone todas las propiedades que está buscando.

La biblioteca de redención elude los problemas relacionados con la seguridad de Outlook y también permite el acceso a más propiedades de las que se exponen en el OOM normal. Lamentablemente, no puedo proporcionarle una muestra que funcione para resolver su problema específico, ya que estoy usando la biblioteca solo para el manejo del correo. Pero, hay muchos ejemplos de código en el sitio de canje.


Como se sugirió en la otra pregunta , es posible que deba recurrir al acceso directo a la base de datos LDAP debajo de la libreta de direcciones.