Lograr que los miembros de GroupContact PublicGroup incluidas en la lista global de direcciones (EWS)

StackOverflow https://stackoverflow.com/questions/4227001

Pregunta

Cuando el envío de correos electrónicos a listas de distribución, las listas mismos se encuentran dentro de la lista global de direcciones (GAL). El acceso a la GAL en Outlook 2010 es una simple cuestión de hacer estallar en su libreta de direcciones y seleccionar la libreta de direcciones correspondiente (en este caso, el GAL para el usuario conectado).

He tratado y tratado de conseguir el acceso a los miembros de un CONTACTGROUP dentro del GAL pero no parecen tener un ID (y, como tal, no UniqueID tampoco). Lo hará como un MailboxType de MailboxType.PublicGroup desde el interior de la propiedad ToRecipients de un correo electrónico enviado, pero no puedo encontrar la manera de acceder a las direcciones de contacto real!

conozco a nadie cómo puedo obtener una bodega de ellos? He intentado hacer búsquedas de carpetas públicas, buscaron completa de contactos, pero nada parece encontrarlo.

Daniel.

¿Fue útil?

Solución

EWS no es la herramienta adecuada para el trabajo. Es necesario para la consulta ActiveDirectory. Consulte http://www.infinitec.de/post/2005/02/How-to-get-the-Global-Address-List-programatically.aspx para un ejemplo.

Otros consejos

Yo uso los servicios Web Exchange Managed API 1.1 SDK y funciona como un encanto.
Reemplazar <exchange_server> y <group_name> con su propio uno.

using System;
using System.Windows.Forms;
using Microsoft.Exchange.WebServices.Data;

namespace test3
{
    public partial class Form1 : Form
    {
        ExchangeService service = null;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            service = new ExchangeService();
            service.Url = new Uri("https://<exchange_server>/EWS/Exchange.asmx");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            NameResolutionCollection nameResolutions = service.ResolveName(
                "<group_name>",
                ResolveNameSearchLocation.DirectoryOnly,
                true);

            foreach (NameResolution nameResolution in nameResolutions)
            {
                ExpandGroupResults groupResults = service.ExpandGroup(nameResolution.Mailbox.Address);
                foreach (EmailAddress member in groupResults.Members)
                {
                    Console.WriteLine(member.Name + " <" + member.Address + ">");
                }
            }
        }
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top