Розмови на Microsoft Exchange Server називаються групою електронних повідомлень у ланцюжку. Простими словами, електронний лист і всі відповіді на нього є розмовою. У цій статті ми покажемо вам, як програмно працювати з розмовами в MS Exchange Server. Зокрема, ви дізнаєтесь, як знаходити, копіювати, переміщувати та видаляти розмови на сервері MS Exchange Server у C# .NET.
- C# .NET API для роботи з розмовами на сервері MS Exchange
- Пошук розмов на сервері MS Exchange у C#
- Копіювання розмови на сервері MS Exchange у C#
- Переміщення розмови на сервері MS Exchange у C#
- Видалення розмови на сервері MS Exchange у C#
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#.
- Спочатку створіть та ініціалізуйте об’єкт NetworkCredential з іменем користувача, паролем і доменом.
- Потім ініціалізуйте IEWSClient за допомогою URI поштової скриньки та об’єкта NetworkCredential.
- Викличте метод IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) і отримайте розмови в масиві ExchangeConversation.
- Нарешті, прокрутіть кожен об’єкт ExchangeConversation у масиві та отримайте його деталі.
У наведеному нижче прикладі коду показано, як знайти розмови з папки на сервері 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.
- Спочатку створіть та ініціалізуйте об’єкт NetworkCredential з іменем користувача, паролем і доменом.
- Потім ініціалізуйте IEWSClient за допомогою URI поштової скриньки та об’єкта NetworkCredential.
- Викличте метод IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) і отримайте розмови в масиві ExchangeConversation.
- Перегляньте кожну ExchangeConversation у масиві та відфільтруйте потрібні.
- Нарешті, скопіюйте розмову за допомогою методу IEWSClient.CopyConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri).
У наведеному нижче прикладі коду показано, як скопіювати розмову на сервері 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.
- Спочатку створіть та ініціалізуйте об’єкт NetworkCredential з іменем користувача, паролем і доменом.
- Потім ініціалізуйте IEWSClient за допомогою URI поштової скриньки та об’єкта NetworkCredential.
- Викличте метод IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) і отримайте розмови в масиві ExchangeConversation.
- Перегляньте кожну ExchangeConversation у масиві та відфільтруйте потрібні.
- Нарешті, перемістіть бесіду за допомогою методу IEWSClient.MoveConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri).
У наступному прикладі коду показано, як перемістити розмову на сервері 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#.
- Спочатку створіть та ініціалізуйте об’єкт NetworkCredential з іменем користувача, паролем і доменом.
- Потім ініціалізуйте IEWSClient за допомогою URI поштової скриньки та об’єкта NetworkCredential.
- Після цього викличте метод IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) і отримайте розмови в масиві ExchangeConversation.
- Перегляньте кожну ExchangeConversation у масиві та відфільтруйте потрібні.
- Нарешті видаліть розмову за допомогою методу IEWSClient.DeleteConversationItems(ExchangeConversation.ConversationId).
У наведеному нижче прикладі коду показано, як видалити розмову з 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. Ви також можете поставити свої запитання через наш форум.