Administrar las reglas de la bandeja de entrada en Exchange Server en C#

Microsoft Exchange Server le permite definir diferentes reglas para la bandeja de entrada, que se aplican a los mensajes, como mover un mensaje a una carpeta, eliminar un mensaje, etc. Mientras trabaja con los servicios de Exchange desde aplicaciones .NET , es posible que deba administrar las reglas de la bandeja de entrada mediante programación. En este artículo, aprenderá cómo crear y actualizar las reglas de la bandeja de entrada en MS Exchange Server en C# .NET.

.NET API para administrar las reglas de la bandeja de entrada en Exchange Server

Para crear y actualizar las reglas de la bandeja de entrada en MS Exchange Server, usaremos Aspose.Email for .NET. La API hace que sea bastante más fácil trabajar sin problemas con MS Exchange Server. Puede descargar la DLL de la API o instalarla desde NuGet con el siguiente comando.

PM> Install-Package Aspose.Email

Crear reglas de bandeja de entrada en Exchange Server en C#

Aspose.Email for .NET usa Exchange Web Services (EWS) para trabajar con las reglas de la bandeja de entrada en Exchange Server. Los siguientes son los pasos para crear reglas de bandeja de entrada en Exchange Server en C#.

El siguiente ejemplo de código muestra cómo crear una regla de bandeja de entrada en Exchange Server en C#.

// Establezca la URL, el nombre de usuario, la contraseña y el dominio del servicio web de Exchange Server
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// Conéctese al servidor de intercambio
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);
Console.WriteLine("Connected to Exchange server");

// Crear una nueva regla
InboxRule rule = new InboxRule();
rule.DisplayName = "Message from client ABC";

// Añadir condiciones
RulePredicates newRules = new RulePredicates();
// Establecer condición: el asunto contiene la cadena "ABC"
newRules.ContainsSubjectStrings.Add("ABC");
newRules.FromAddresses.Add(new MailAddress("administrator@ex2010.local", true));
rule.Conditions = newRules;

// Añadir acciones
RuleActions newActions = new RuleActions();
newActions.MoveToFolder = "120:AAMkADFjMjNjMmNjLWE3NzgtNGIzNC05OGIyLTAwNTgzNjRhN2EzNgAuAAAAAABbwP+Tkhs0TKx1GMf0D/cPAQD2lptUqri0QqRtJVHwOKJDAAACL5KNAAA=AQAAAA==";
rule.Actions = newActions;

// Crear regla
client.CreateInboxRule(rule);

Actualizar las reglas de la bandeja de entrada en Exchange Server en C#

Los siguientes son los pasos para buscar y actualizar una regla de bandeja de entrada existente en Exchange Server en C#.

  • Primero, conéctese a Exchange Server y obtenga la instancia del cliente EWS en un objeto IEWSClient.
  • Luego, llame al método IEWSClient.GetInboxRules() para obtener todas las reglas en una matriz InboxRule.
  • Recorra cada InboxRule en la matriz.
  • Filtre las reglas necesarias en función de algunas condiciones.
  • Actualice las condiciones o acciones de la regla.
  • Finalmente, llame al método IEWSClient.UpdateInboxRule(InboxRule) para actualizar la regla de la bandeja de entrada.

El siguiente ejemplo de código muestra cómo actualizar una regla de bandeja de entrada en MS Exchange Server en C#.

// Establecer mailboxURI, nombre de usuario, contraseña y dominio
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// Conéctese al servidor de intercambio
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);

Console.WriteLine("Connected to Exchange server");

// Obtener todas las reglas de la bandeja de entrada
InboxRule[] inboxRules = client.GetInboxRules();

// Bucle a través de cada regla
foreach (InboxRule inboxRule in inboxRules)
{
    if (inboxRule.DisplayName == "Message from client ABC")
    {
        // Actualizar regla
        inboxRule.Conditions.FromAddresses[0] = new MailAddress("administrator@ex2010.local", true);
        client.UpdateInboxRule(inboxRule);
    }
}

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar Aspose.Email for .NET sin limitaciones de evaluación.

Conclusión

En este artículo, aprendió a trabajar con las reglas de la bandeja de entrada en Microsoft Exchange Server desde las aplicaciones .NET. Con la ayuda de ejemplos de código, ha visto cómo agregar o actualizar las reglas de la bandeja de entrada en Exchange Server en C#. Además, puede explorar la documentación para leer más sobre Aspose.Email for .NET. Además, puede publicar sus consultas en nuestro foro.

Ver también