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
- Tìm cuộc hội thoại trên MS Exchange Server trong C#
- Sao chép cuộc hội thoại trên MS Exchange Server trong C#
- Di chuyển một cuộc hội thoại trên MS Exchange Server trong C#
- Xóa cuộc hội thoại trên MS Exchange Server trong C#
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#.
- Đầu tiên, tạo và khởi tạo đối tượng NetworkCredential với tên người dùng, mật khẩu và miền.
- Sau đó, khởi tạo IEWSClient với URI hộp thư và đối tượng NetworkCredential.
- Gọi phương thức IEWSClient.FindConversations (IEWSClient.MailboxInfo.InboxUri) và nhận các cuộc hội thoại trong mảng ExchangeConversation.
- Cuối cùng, lặp qua từng đối tượng ExchangeConversation trong mảng và truy xuất chi tiết của nó.
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.
- Đầu tiên, tạo và khởi tạo đối tượng NetworkCredential với tên người dùng, mật khẩu và miền.
- Sau đó, khởi tạo IEWSClient với URI hộp thư và đối tượng NetworkCredential.
- Gọi phương thức IEWSClient.FindConversations (IEWSClient.MailboxInfo.InboxUri) và nhận các cuộc hội thoại trong mảng ExchangeConversation.
- Lặp qua từng ExchangeConversation trong mảng và lọc (các) cái bắt buộc.
- Cuối cùng, sao chép cuộc hội thoại bằng phương pháp IEWSClient.CopyConversationItems (ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri).
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.
- Đầu tiên, tạo và khởi tạo đối tượng NetworkCredential với tên người dùng, mật khẩu và miền.
- Sau đó, khởi tạo IEWSClient với URI hộp thư và đối tượng NetworkCredential.
- Gọi phương thức IEWSClient.FindConversations (IEWSClient.MailboxInfo.InboxUri) và nhận các cuộc hội thoại trong mảng ExchangeConversation.
- Lặp qua từng ExchangeConversation trong mảng và lọc (các) cái bắt buộc.
- Cuối cùng, di chuyển cuộc hội thoại bằng phương thức IEWSClient.MoveConversationItems (ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri).
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#.
- Đầu tiên, tạo và khởi tạo đối tượng NetworkCredential với tên người dùng, mật khẩu và miền.
- Sau đó, khởi tạo IEWSClient với URI hộp thư và đối tượng NetworkCredential.
- Sau đó, gọi phương thức IEWSClient.FindConversations (IEWSClient.MailboxInfo.InboxUri) và nhận các cuộc hội thoại trong mảng ExchangeConversation.
- Lặp qua từng ExchangeConversation trong mảng và lọc (các) cái bắt buộc.
- Cuối cùng, xóa một cuộc hội thoại bằng phương thức IEWSClient.DeleteConversationItems (ExchangeConversation.ConversationId).
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.