Microsoft Exchange Server позволяет вам определять различные правила для папки «Входящие», которые применяются к сообщениям, такие как перемещение сообщения в папку, удаление сообщения и т. д. При работе со службами Exchange из приложений .NET , вам может потребоваться программно управлять правилами для папки “Входящие”. В этой статье вы узнаете, как создавать и обновлять правила для папки «Входящие» на сервере MS Exchange в C# .NET.
- .NET API для управления правилами папки «Входящие» на сервере Exchange
- Создание правил для папки “Входящие” на сервере Exchange
- Обновление правил для папки “Входящие” на сервере Exchange
.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. Кроме того, вы можете размещать свои запросы на нашем форуме.