Làm việc với các cuộc hội thoại trong MS Exchange Server trong C#

Các cuộc hội thoại trên Microsoft Exchange Server được gọi là nhóm thư email trong một chuỗi. Nói một cách dễ hiểu, một email và tất cả các thư trả lời của nó được coi là một cuộc trò chuyện. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách làm việc với các cuộc hội thoại trong MS Exchange Server theo lập trình. Đặc biệt, bạn sẽ học cách tìm, sao chép, di chuyển và xóa các cuộc hội thoại trên MS Exchange Server trong C# .NET.

C# .NET API để làm việc với các cuộc hội thoại trên MS Exchange Server

Để quản lý các cuộc hội thoại trên Microsoft Exchange Server, chúng tôi sẽ sử dụng Aspose.Email for .NET. Nó là một API mạnh mẽ cung cấp một loạt các tính năng để triển khai các ứng dụng email client. Ngoài ra, nó cho phép bạn truy cập các dịch vụ khác nhau của MS Exchange Server một cách liền mạch. Bạn có thể tải xuống DLL của API hoặc cài đặt nó từ NuGet bằng lệnh sau.

PM> Install-Package Aspose.Email

Tìm cuộc hội thoại trên MS Exchange Server trong C#

Sau đây là các bước để tìm các cuộc hội thoại từ một thư mục trong MS Exchange Server trong C#.

Mẫu mã sau đây cho thấy cách tìm các cuộc hội thoại từ một thư mục trong MS Exchange Server trong 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);

// Kết nối với Máy chủ MS Exchange
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Nhận cuộc trò chuyện từ hộp thư đến
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

// Hiển thị tất cả các cuộc trò chuyện
foreach (ExchangeConversation conversation in conversations)
{
    // Hiển thị các thuộc tính hội thoại như Id và Chủ đề
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

Sao chép cuộc hội thoại trên MS Exchange Server trong C#

Bạn cũng có thể sao chép các cuộc hội thoại từ thư mục này sang thư mục khác mà không cần viết mã phức tạp. Để minh họa, chúng ta hãy xem cách sao chép các cuộc hội thoại từ hộp thư đến vào thư mục các mục đã xóa của Exchange Server trong C# .NET.

Mẫu mã sau đây cho thấy cách sao chép một cuộc hội thoại trong MS Exchange Server bằng 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);

// Kết nối với Máy chủ MS Exchange
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Nhận cuộc trò chuyện
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Sao chép mục hội thoại dựa trên một số điều kiện
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

Di chuyển một cuộc hội thoại trên MS Exchange Server trong C#

Trong phần trước, chúng ta vừa sao chép các cuộc hội thoại từ thư mục này sang thư mục khác. Tuy nhiên, trong một số trường hợp nhất định, bạn có thể cần phải chuyển một cuộc hội thoại vào một thư mục cụ thể. Sau đây là các bước để di chuyển các cuộc hội thoại trong MS Exchange Server trong C# .NET.

Mẫu mã sau đây cho thấy cách di chuyển một cuộc hội thoại trong MS Exchange Server bằng 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);

// Kết nối với Máy chủ MS Exchange
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Nhận cuộc trò chuyện
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Di chuyển mục hội thoại dựa trên một số điều kiện
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

Xóa cuộc hội thoại trên MS Exchange Server trong C#

Cuối cùng nhưng không kém phần quan trọng, chúng ta hãy xem cách xóa một cuộc hội thoại khỏi MS Exchange Server trong C#.

Mẫu mã sau đây cho thấy cách xóa một cuộc hội thoại khỏi MS Exchange Server trong 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);

// Kết nối với Máy chủ MS Exchange
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Nhận cuộc trò chuyện
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Xóa mục hội thoại dựa trên một số điều kiện
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng Aspose.Email for .NET mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách quản lý các cuộc hội thoại trong Microsoft Exchange Server bằng C#. Bạn đã thấy cách tìm, sao chép, di chuyển và xóa các cuộc hội thoại trên MS Exchange Server theo chương trình trong C#. Ngoài ra, bạn có thể khám phá tài liệu để đọc thêm về Aspose.Email for .NET. Ngoài ra, bạn có thể đặt câu hỏi của mình qua diễn đàn của chúng tôi.

Xem thêm