Создание и удаление папок на сервере MS Exchange в C#

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

С# .NET API для создания папок на сервере MS Exchange

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

PM> Install-Package Aspose.Email

Создайте папку на сервере MS Exchange в C#

Ниже приведены шаги по созданию папки на сервере MS Exchange в C#.

  • Подключитесь к серверу MS Exchange и получите объект клиента EWS в IEWSClient.
  • Укажите имя корневой папки и папку, которую вы хотите создать.
  • Создайте папку, используя метод IEWSClient.CreateFolder(string, string).

В следующем примере кода показано, как создать папку на сервере MS Exchange с помощью EWS на C#.

// Создайте экземпляр класса EWSClient, предоставив учетные данные
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Получить URI папки «Входящие» (чтобы создать папку в папке «Входящие»)
string inbox = client.MailboxInfo.InboxUri;

// Укажите имя папки
string folderName1 = "EMAILNET-35054";

try
{
    // Создать папку
    client.UseSlashAsFolderSeparator = true;
    client.CreateFolder(client.MailboxInfo.InboxUri, folderName1);
}
catch
{
    // Сделай что-нибудь
}

Создайте подпапку на сервере MS Exchange в C#

Чтобы создать подпапку, вам сначала нужно проверить, существует ли родительская папка. Если это так, просто создайте подпапку, иначе сначала создайте родительскую папку. Следующие шаги демонстрируют, как создать подпапку на сервере MS Exchange в C#.

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

// Создайте экземпляр класса EWSClient, предоставив учетные данные
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Получить URI почтового ящика
string inbox = client.MailboxInfo.InboxUri;

// Укажите имя папки
string folderName1 = "EMAILNET-35054";

// Укажите имя подпапки
string subFolderName = "2015";
string folderName2 = folderName1 + "/" + subFolderName;

ExchangeFolderInfo rootFolderInfo = null; 

try
{
    client.UseSlashAsFolderSeparator = true;
    if (!client.FolderExists(inbox, folderName1, out rootFolderInfo))
    {
        // Создать папку
        rootFolderInfo = client.CreateFolder(inbox, folderName1);
    }

    // Создать подпапку
    client.CreateFolder(inbox, folderName2);
}
catch
{
    // Сделай что-нибудь
}

Удалить папку на сервере MS Exchange в С#

Ниже приведены шаги по удалению папки на сервере MS Exchange в C#.

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

// Создайте экземпляр класса EWSClient, предоставив учетные данные
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Получить URI почтового ящика
string inbox = client.MailboxInfo.InboxUri;

// Укажите имя папки
string folderName1 = "EMAILNET-35054";

ExchangeFolderInfo rootFolderInfo = null;

try
{
    // Проверить, существует ли папка
    if (client.FolderExists(inbox, folderName1, out rootFolderInfo))
    {
        // Удалить папку
        client.DeleteFolder(rootFolderInfo.Uri, true);
    }
}
catch
{
    // Сделай что-нибудь
}

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

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

Вывод

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

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