Робота з розмовами в MS Exchange Server на C#

Розмови на Microsoft Exchange Server називаються групою електронних повідомлень у ланцюжку. Простими словами, електронний лист і всі відповіді на нього є розмовою. У цій статті ми покажемо вам, як програмно працювати з розмовами в MS Exchange Server. Зокрема, ви дізнаєтесь, як знаходити, копіювати, переміщувати та видаляти розмови на сервері MS Exchange Server у C# .NET.

C# .NET API для роботи з розмовами на сервері MS Exchange

Щоб керувати розмовами на Microsoft Exchange Server, ми будемо використовувати Aspose.Email for .NET. Це потужний API, який надає низку функцій для впровадження клієнтських програм електронної пошти. Крім того, це дозволяє безперешкодно отримувати доступ до різних служб MS Exchange Server. Ви можете завантажити DLL API або встановити його з NuGet за допомогою такої команди.

PM> Install-Package Aspose.Email

Пошук розмов на сервері MS Exchange у C#

Нижче наведено кроки для пошуку розмов із папки на сервері MS Exchange Server у C#.

У наведеному нижче прикладі коду показано, як знайти розмови з папки на сервері MS Exchange Server у C#.

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// Підключіться до MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Отримуйте розмови з папки "Вхідні".
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

// Показати всі розмови
foreach (ExchangeConversation conversation in conversations)
{
    // Відображення властивостей бесіди, таких як ідентифікатор і тема
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

Копіювання розмови на сервері MS Exchange у C#

Ви також можете скопіювати розмови з однієї папки в іншу без написання складного коду. Для демонстрації давайте розглянемо, як скопіювати розмови з папки «Вхідні» до папки видалених елементів на сервері Exchange Server у C# .NET.

У наведеному нижче прикладі коду показано, як скопіювати розмову на сервері MS Exchange Server за допомогою C# .NET.

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// Підключіться до MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Отримати розмови
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);

    // Скопіюйте елемент розмови на основі певної умови
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

Переміщення розмови на сервері MS Exchange у C#

У попередньому розділі ми просто скопіювали розмови з однієї папки в іншу. Однак у деяких випадках вам може знадобитися перемістити бесіду до певної папки. Нижче наведено кроки для переміщення розмов у MS Exchange Server у C# .NET.

У наступному прикладі коду показано, як перемістити розмову на сервері MS Exchange Server за допомогою C# .NET.

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// Підключіться до MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Отримати розмови
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);

    // Перемістити елемент розмови на основі певної умови
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

Видалення розмови на сервері MS Exchange у C#

І останнє, але не менш важливе, давайте розглянемо, як видалити розмову з MS Exchange Server у C#.

У наведеному нижче прикладі коду показано, як видалити розмову з MS Exchange Server у C# .NET.

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// Підключіться до MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Отримати розмови
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);

    // Видалити елемент розмови на основі певної умови
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}

Отримайте безкоштовну ліцензію API

Ви можете отримати безкоштовну тимчасову ліцензію на використання Aspose.Email for .NET без оціночних обмежень.

Висновок

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

Дивись також