Gestisci le regole della posta in arrivo su Exchange Server in C#

Microsoft Exchange Server consente di definire regole diverse per la posta in arrivo, che vengono applicate ai messaggi, come spostare un messaggio in una cartella, eliminare un messaggio, ecc. Durante l’utilizzo dei servizi di Exchange dall’interno delle applicazioni .NET , potrebbe essere necessario gestire le regole della posta in arrivo a livello di codice. In questo articolo imparerai come creare e aggiornare le regole della posta in arrivo su MS Exchange Server in C# .NET.

API .NET per gestire le regole della posta in arrivo su Exchange Server

Per creare e aggiornare le regole della posta in arrivo su MS Exchange Server, utilizzeremo Aspose.Email for .NET. L’API rende molto più semplice lavorare senza problemi con MS Exchange Server. Puoi scaricare la DLL dell’API o installarla da NuGet usando il comando seguente.

PM> Install-Package Aspose.Email

Crea regole Posta in arrivo su Exchange Server in C#

Aspose.Email per .NET utilizza i servizi Web Exchange (EWS) per lavorare con le regole della posta in arrivo su Exchange Server. Di seguito sono riportati i passaggi per creare regole di posta in arrivo su Exchange Server in C#.

Nell’esempio di codice seguente viene illustrato come creare una regola della posta in arrivo in Exchange Server in C#.

// Impostare l'URL, il nome utente, la password e il dominio del servizio Web di Exchange Server
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// Connettiti al server di scambio
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);
Console.WriteLine("Connected to Exchange server");

// Crea una nuova regola
InboxRule rule = new InboxRule();
rule.DisplayName = "Message from client ABC";

// Aggiungi condizioni
RulePredicates newRules = new RulePredicates();
// Condizione impostata: l'oggetto contiene la stringa "ABC"
newRules.ContainsSubjectStrings.Add("ABC");
newRules.FromAddresses.Add(new MailAddress("administrator@ex2010.local", true));
rule.Conditions = newRules;

// Aggiungi azioni
RuleActions newActions = new RuleActions();
newActions.MoveToFolder = "120:AAMkADFjMjNjMmNjLWE3NzgtNGIzNC05OGIyLTAwNTgzNjRhN2EzNgAuAAAAAABbwP+Tkhs0TKx1GMf0D/cPAQD2lptUqri0QqRtJVHwOKJDAAACL5KNAAA=AQAAAA==";
rule.Actions = newActions;

// Crea regola
client.CreateInboxRule(rule);

Aggiorna le regole della posta in arrivo su Exchange Server in C#

Di seguito sono riportati i passaggi per recuperare e aggiornare una regola della posta in arrivo esistente su Exchange Server in C#.

  • Innanzitutto, connettiti a Exchange Server e ottieni l’istanza del client EWS in un oggetto IEWSClient.
  • Quindi, chiama il metodo IEWSClient.GetInboxRules() per ottenere tutte le regole in un array InboxRule.
  • Passa attraverso ogni InboxRule nell’array.
  • Filtra le regole richieste in base ad alcune condizioni.
  • Aggiorna le condizioni o le azioni della regola.
  • Infine, chiama il metodo IEWSClient.UpdateInboxRule(InboxRule) per aggiornare la regola della posta in arrivo.

Nell’esempio di codice seguente viene illustrato come aggiornare una regola della posta in arrivo in MS Exchange Server in C#.

// Imposta mailboxURI, nome utente, password e dominio
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// Connettiti al server di scambio
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);

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

// Ottieni tutte le regole della posta in arrivo
InboxRule[] inboxRules = client.GetInboxRules();

// Passa attraverso ogni regola
foreach (InboxRule inboxRule in inboxRules)
{
    if (inboxRule.DisplayName == "Message from client ABC")
    {
        // Aggiorna regola
        inboxRule.Conditions.FromAddresses[0] = new MailAddress("administrator@ex2010.local", true);
        client.UpdateInboxRule(inboxRule);
    }
}

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare Aspose.Email per .NET senza limitazioni di valutazione.

Conclusione

In questo articolo si è appreso come utilizzare le regole della posta in arrivo su Microsoft Exchange Server dall’interno delle applicazioni .NET. Con l’aiuto di esempi di codice, hai visto come aggiungere o aggiornare le regole della posta in arrivo su Exchange Server in C#. Inoltre, puoi esplorare la documentazione per saperne di più su Aspose.Email per .NET. Inoltre, puoi inviare le tue domande al nostro forum.

Guarda anche