Управление правилами для папки 'Входящие' на сервере Exchange на C#

Microsoft Exchange Server позволяет вам определять различные правила для папки «Входящие», которые применяются к сообщениям, такие как перемещение сообщения в папку, удаление сообщения и т. д. При работе со службами Exchange из приложений .NET , вам может потребоваться программно управлять правилами для папки “Входящие”. В этой статье вы узнаете, как создавать и обновлять правила для папки «Входящие» на сервере MS Exchange в C# .NET.

.NET API для управления правилами папки «Входящие» на сервере Exchange

Для создания и обновления правил для входящих сообщений на сервере MS Exchange мы будем использовать Aspose.Email для .NET. API значительно упрощает работу с MS Exchange Server. Вы можете либо скачать библиотеку DLL API, либо установить ее из NuGet с помощью следующей команды.

PM> Install-Package Aspose.Email

Создание правил для папки “Входящие” на сервере Exchange на C#

Aspose.Email для .NET использует веб-службы Exchange (EWS) для работы с правилами для входящих сообщений на сервере Exchange. Ниже приведены шаги по созданию правил для папки «Входящие» на сервере Exchange на языке C#.

  • Сначала подключитесь к Exchange Server и получите экземпляр клиента EWS в объект IEWSClient.
  • Затем создайте объект класса InboxRule.
  • Задайте имя правила с помощью свойства InboxRule.DisplayName.
  • Создайте экземпляр класса RulePredicates и укажите условия.
  • Назначьте экземпляр RulePredicates свойству InboxRule.Conditions.
  • Создайте экземпляр класса RuleActions и установите действия.
  • Назначьте экземпляр RuleAction свойству InboxRule.Actions.
  • Наконец, вызовите IEWSClient.CreateInboxRule(InboxRule), чтобы создать правило.

В следующем примере кода показано, как создать правило для папки “Входящие” на сервере Exchange на языке C#.

// Установите URL-адрес веб-службы Exchange Server, имя пользователя, пароль и домен
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// Подключиться к серверу обмена
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);
Console.WriteLine("Connected to Exchange server");

// Создать новое правило
InboxRule rule = new InboxRule();
rule.DisplayName = "Message from client ABC";

// Добавить условия
RulePredicates newRules = new RulePredicates();
// Задайте условие: тема содержит строку "ABC"
newRules.ContainsSubjectStrings.Add("ABC");
newRules.FromAddresses.Add(new MailAddress("administrator@ex2010.local", true));
rule.Conditions = newRules;

// Добавить действия
RuleActions newActions = new RuleActions();
newActions.MoveToFolder = "120:AAMkADFjMjNjMmNjLWE3NzgtNGIzNC05OGIyLTAwNTgzNjRhN2EzNgAuAAAAAABbwP+Tkhs0TKx1GMf0D/cPAQD2lptUqri0QqRtJVHwOKJDAAACL5KNAAA=AQAAAA==";
rule.Actions = newActions;

// Создать правило
client.CreateInboxRule(rule);

Обновление правил для папки “Входящие” на сервере Exchange на C#

Ниже приведены шаги по извлечению и обновлению существующего правила для папки “Входящие” на сервере Exchange на языке C#.

  • Сначала подключитесь к Exchange Server и получите экземпляр клиента EWS в объект IEWSClient.
  • Затем вызовите метод IEWSClient.GetInboxRules(), чтобы получить все правила в массиве InboxRule.
  • Прокрутите все InboxRule в массиве.
  • Отфильтруйте необходимые правила на основе некоторых условий.
  • Обновите условия или действия правила.
  • Наконец, вызовите метод IEWSClient.UpdateInboxRule(InboxRule), чтобы обновить правило для папки “Входящие”.

В следующем примере кода показано, как обновить правило для папки “Входящие” на сервере MS Exchange на языке C#.

// Установите почтовый ящикURI, имя пользователя, пароль и домен
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// Подключиться к серверу обмена
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);

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

// Получить все правила для входящих сообщений
InboxRule[] inboxRules = client.GetInboxRules();

// Перебрать каждое правило
foreach (InboxRule inboxRule in inboxRules)
{
    if (inboxRule.DisplayName == "Message from client ABC")
    {
        // Обновить правило
        inboxRule.Conditions.FromAddresses[0] = new MailAddress("administrator@ex2010.local", true);
        client.UpdateInboxRule(inboxRule);
    }
}

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию для использования Aspose.Email для .NET без ограничений пробной версии.

Вывод

В этой статье вы узнали, как работать с правилами для папки «Входящие» на сервере Microsoft Exchange Server из приложений .NET. С помощью примеров кода вы узнали, как добавлять или обновлять правила для папки “Входящие” на сервере Exchange на C#. Кроме того, вы можете изучить документацию, чтобы узнать больше об Aspose.Email для .NET. Кроме того, вы можете размещать свои запросы на нашем форуме.

Смотрите также