Microsoft Exchange Server – це широко використовувана платформа для співпраці, яка надає послуги електронної пошти, керування контактами, календаря та інші служби. У попередній публікації ми показали вам, як програмно отримати доступ до електронної пошти з MS Exchange Server і прочитати її в програмі .NET. Однак вам також може знадобитися скопіювати електронні листи з однієї папки в іншу на сервері Exchange Server. Щоб досягти цього, у цій статті показано, як перемістити електронні листи до певної папки на сервері MS Exchange Server у C# .NET.
- .NET API для переміщення електронних листів на Microsoft Exchange Server
- Перемістіть наявну електронну пошту до папки на сервері MS Exchange
- Перемістіть новий електронний лист до папки на сервері MS Exchange
C# .NET API для переміщення електронних листів на Microsoft Exchange Server
Щоб перемістити електронні листи на сервер MS Exchange, ми використаємо Aspose.Email for .NET. API надає прості способи підключення до MS Exchange Server і роботи з ним. Ви можете встановити його через NuGet або завантажити його DLL.
PM> Install-Package Aspose.Email
Переміщення електронної пошти до папки на сервері MS Exchange у C#
Нижче наведено кроки для переміщення електронних листів до певної папки на сервері MS Exchange у C#.
- Спочатку ініціалізуйте об’єкт IEWSClient за допомогою імені користувача, пароля, домену та URI.
- Потім отримайте список повідомлень електронної пошти в об’єкті ExchangeMessageInfoCollection за допомогою методу IEWSClient.ListMessages(IEWSClient.MailboxInfo.InboxUri).
- Після цього перегляньте кожне повідомлення ExchangeMessageInfo і відфільтруйте потрібні.
- Потім отримайте URI повідомлення, яке потрібно перемістити, за допомогою властивості ExchangeMessageInfo.UniqueUri.
- Нарешті, перемістіть повідомлення електронної пошти за допомогою методу IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.DeletedItemsUri).
У наведеному нижче прикладі коду показано, як перемістити електронний лист до папки на сервері MS Exchange Server у C# .NET.
try
{
// Створіть екземпляр класу EWSClient, надавши облікові дані
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Викличте метод ListMessages, щоб отримати список інформації про повідомлення з папки "Вхідні".
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);
// Перегляньте колекцію, щоб отримати URI повідомлення
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
if (msgInfo.From.Address.Contains("jhon.vick"))
{
String strMessageURI = msgInfo.UniqueUri;
// Копіювати в певну папку
string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Перемістіть новий електронний лист до папки на сервері MS Exchange
Ви також можете перемістити щойно створений електронний лист до певної папки на сервері MS Exchange Server. Нижче наведено кроки для виконання цієї операції.
- Спочатку ініціалізуйте об’єкт IEWSClient за допомогою імені користувача, пароля, домену та URI.
- Потім створіть нове повідомлення за допомогою класу MailMessage.
- Після цього отримайте URI повідомлення електронної пошти, повернутий методом IEWSClient.AppendMessage(MailMessage).
- Нарешті, перемістіть повідомлення електронної пошти за допомогою методу IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.OutboxUri).
У наведеному нижче прикладі коду показано, як перемістити нове повідомлення електронної пошти до папки на сервері MS Exchange Server.
try
{
// Створіть екземпляр класу EWSClient, надавши облікові дані
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Створити повідомлення
MailMessage message = new MailMessage("from@domain.com", "to@domain.com", "EMAILNET-34997 - " + Guid.NewGuid().ToString(), "EMAILNET-34997 Exchange: Copy a message and get reference to the new Copy item");
// Отримати URI повідомлення
string messageUri = client.AppendMessage(message);
// Копіювати повідомлення
string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Отримайте безкоштовну ліцензію API
Ви можете отримати безкоштовну тимчасову ліцензію на використання Aspose.Email for .NET без оціночних обмежень.
Висновок
У цій статті ви дізналися, як перемістити електронні листи до певної папки на Microsoft Exchange Server за допомогою C#. Крім того, ви бачили, як перемістити щойно створене повідомлення електронної пошти до певної папки на сервері Exchange Server. Крім того, ви можете переглянути документацію, щоб дізнатися більше про Aspose.Email for .NET. Ви також можете поставити свої запитання через наш форум.