Trabajando con Listas de Distribución en Exchange Server

Trabajando con Listas de Distribución

Aspose.Email API proporciona la capacidad de crear y leer listas de distribución desde el servidor Exchange. Las listas de distribución pueden ser creadas en el servidor, así como se pueden agregar miembros a ellas usando el IEWSClient. Este artículo muestra cómo trabajar con listas de distribución en el servidor Exchange.

Creando una Lista de Distribución

El siguiente fragmento de código muestra cómo crear una lista de distribución.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser());
System::SharedPtr<ExchangeDistributionList> distributionList = System::MakeObject<ExchangeDistributionList>();
distributionList->set_DisplayName(u"test private list");
System::SharedPtr<MailAddressCollection> members = System::MakeObject<MailAddressCollection>();
members->Add(u"address1@host.com");
members->Add(u"address2@host.com");
members->Add(u"address3@host.com");
try
{
client->CreateDistributionList(distributionList, members);
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex.get_Message());
}

Obtener Lista de Distribución Privada

El siguiente fragmento de código muestra cómo obtener una lista de distribución privada.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::ArrayPtr<System::SharedPtr<ExchangeDistributionList>> distributionLists = client->ListDistributionLists();
for (System::SharedPtr<ExchangeDistributionList> distributionList : distributionLists)
{
System::SharedPtr<MailAddressCollection> members = client->FetchDistributionList(distributionList);
for (auto member : System::IterateOver(members))
{
System::Console::WriteLine(member->get_Address());
}
}

Expandir Lista de Distribución Pública

El siguiente fragmento de código muestra cómo expandir la lista de distribución pública.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<MailAddressCollection> members = client->ExpandDistributionList(System::MakeObject<MailAddress>(u"public.distribution.list@host.com"));
for (auto member : System::IterateOver(members))
{
System::Console::WriteLine(member->get_Address());
}

Agregar miembros

Agregando miembros a una Lista de Distribución Privada

El siguiente fragmento de código muestra cómo agregar miembros a una lista de distribución privada.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser());
System::ArrayPtr<System::SharedPtr<ExchangeDistributionList>> distributionLists = client->ListDistributionLists();
System::SharedPtr<MailAddressCollection> newMembers = System::MakeObject<MailAddressCollection>();
newMembers->Add(u"address4@host.com");
newMembers->Add(u"address5@host.com");
client->AddToDistributionList(distributionLists[0], newMembers);

Agregar miembros sin listar

El siguiente fragmento de código muestra cómo agregar miembros sin listar.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser());
System::SharedPtr<ExchangeDistributionList> distributionList = System::MakeObject<ExchangeDistributionList>();
distributionList->set_Id(u"list's id");
distributionList->set_ChangeKey(u"list's change key");
System::SharedPtr<MailAddressCollection> newMembers = System::MakeObject<MailAddressCollection>();
newMembers->Add(u"address6@host.com");
client->AddToDistributionList(distributionList, newMembers);

Enviar Correo a Lista de Distribución Privada

El siguiente fragmento de código muestra cómo enviar correos a una lista de distribución privada.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::ArrayPtr<System::SharedPtr<ExchangeDistributionList>> distributionLists = client->ListDistributionLists();
System::SharedPtr<MailAddress> distributionListAddress = distributionLists[0]->ToMailAddress();
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>(System::MakeObject<MailAddress>(u"from@host.com"), distributionListAddress);
message->set_Subject(u"sendToPrivateDistributionList");
client->Send(message);

Eliminando miembros

Eliminando miembros de la Lista de Distribución Privada

El siguiente fragmento de código muestra cómo eliminar miembros de una lista de distribución privada.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::ArrayPtr<System::SharedPtr<ExchangeDistributionList>> distributionLists = client->ListDistributionLists();
System::SharedPtr<MailAddressCollection> members = client->FetchDistributionList(distributionLists[0]);
System::SharedPtr<MailAddressCollection> membersToDelete = System::MakeObject<MailAddressCollection>();
membersToDelete->Add(members->idx_get(0));
membersToDelete->Add(members->idx_get(1));
client->DeleteFromDistributionList(distributionLists[0], membersToDelete);

Eliminar miembros sin listar

El siguiente fragmento de código muestra cómo eliminar miembros sin listar.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser());
System::SharedPtr<ExchangeDistributionList> distributionList = System::MakeObject<ExchangeDistributionList>();
distributionList->set_Id(u"list's id");
distributionList->set_ChangeKey(u"list's change key");
System::SharedPtr<MailAddressCollection> membersToDelete = System::MakeObject<MailAddressCollection>();
System::SharedPtr<MailAddress> addressToDelete = System::MakeObject<MailAddress>(u"address", true);
//addressToDelete.Id.EWSId = "member's id";
membersToDelete->Add(addressToDelete);
try
{
client->AddToDistributionList(distributionList, membersToDelete);
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex.get_Message());
}

Eliminar Lista de Distribución Privada

El siguiente fragmento de código muestra cómo eliminar una lista de distribución privada.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser());
try
{
System::ArrayPtr<System::SharedPtr<ExchangeDistributionList>> distributionLists = client->ListDistributionLists();
client->DeleteDistributionList(distributionLists[0], true);
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex.get_Message());
}

Eliminar sin listar

El siguiente fragmento de código muestra cómo eliminar sin listar.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-C
System::SharedPtr<IEWSClient> client = GetExchangeEWSClient(GetExchangeTestUser());
System::SharedPtr<ExchangeDistributionList> distributionList = System::MakeObject<ExchangeDistributionList>();
distributionList->set_Id(u"list's id");
try
{
client->DeleteDistributionList(distributionList, true);
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex.get_Message());
}