Изпращане, четене и организиране на съобщения в Exchange сървър

Contents
[ ]

Извличане на информация за Exchange пощенска кутия с EWS

Aspose.Email ви позволява да извлечете детайли за пощенска кутия от Microsoft Exchange чрез IEWSClient клас. При извикване на GetMailboxInfo() метод, клиентът връща ExchangeMailboxInfo обект, съдържащ полезни URI-та на папки като Mailbox, Inbox, Drafts и Sent Items.

За да се свържете с Exchange сървъра чрез Exchange Web Services (EWS), използвайте IEWSClient клас. Този клас използва EWS за свързване и управление на елементи в Exchange сървър.

Следният откъс от код демонстрира как да получите информация за пощенската кутия, използвайки Exchange Web Services.

Изпращане на имейл съобщения чрез EWS

Можете да изпращате имейли чрез Exchange, като извикате IEWSClient->Send() метод. Приема MailMessage обект и го изпраща директно през сървъра, използвайки EWS.

Следният примерен код показва как да изпратите HTML имейл съобщение чрез Exchange сървър, използвайки Exchange Web Services (EWS) с Aspose.Email за C++. Той демонстрира пълния процес на установяване на връзка с Exchange, създаване на имейл съобщение с подател, получател, тема и HTML съдържание, след което изпращане на съобщението чрез метода Send на EWS клиента.

Четене на имейли от пощенска кутия на друг потребител

Някои акаунти в Exchange сървъри имат право да достъпват множество пощенски кутии, а някои потребители имат множество имейл акаунти на един и същи Exchange сървър. И в двата случая потребителите могат да достъпват кутии на други потребители с Aspose.Email. API‑то предоставя механизъм за достъп до папки и имейли от други пощенски кутии, използвайки IEWSClient клас. Тази функционалност може да бъде постигната чрез претоварения GetMailboxInfo() метод и предоставяйки имейл адреса на потребителя като параметър.

Следният кодов откъс показва как да четете имейли, използвайки IEWSClient клас.

Изброяване на съобщения с EWS

Aspose.Email за C++ ви позволява да извличате метаданни за съобщения от пощенски кутии на Exchange сървър чрез IEWSClient. Използвайки базираното на EWS ListMessages с API‑то можете да изброявате съобщения от всяка папка, преглеждате метаданните на съобщенията и реализирате странициране за големи пощенски кутии.

Изброяване на съобщения от входящата кутия

Използвайте ListMessages за извличане на основна информация за съобщението като тема, подател, получатели и ID на съобщението от входящата кутия или която и да е папка.

Следният примерен код демонстрира как да изброите и покажете основната информация за всички съобщения в Exchange сървър.

  1. Създайте инстанция на IEWSClient.
  2. Извикайте ListMessages с URI на целевата папка.
  3. Обхождане на ExchangeMessageInfoCollection.

Изброяване на съобщения от всяка папка

ListMessages приема всяко валидно URI на папка, позволявайки ви да изброявате елементи от Изтрити, Чернови, Изпратени или персонализирани папки. Използвайте IEWSClient->get_MailboxInfo->xxxFolderUri свойство за получаване на URI на различните папки.

Следният примерен код демонстрира как да достъпите различни URI на папки в Exchange сървър и да извлечете съобщения от конкретна папка.

Страниране при изброяване на съобщения

За големи пощенски кутии, използвайте ListMessagesByPage за зареждане на съобщения в по-малки блокове.

Следният примерен код демонстрира как да реализирате странициране за извличане на голям брой съобщения от входящата кутия на Exchange сървър.

  1. Първо, той създава няколко тестови съобщения на сървъра.
  2. След това използва ListMessagesByPage метод за извличане на съобщения на по-малки партиди (5 съобщения на страница в този случай), обхождайки всички страници, докато се достигне последната.
  3. Накрая кодът проверява, че всички съобщения са успешно извлечени, като брои общия брой елементи във всички страници.

Получаване на информация за типа на съобщението

Използвайте ExchangeMessageInfo->MessageInfoType за определяне на подлежащия тип съобщение в Exchange (например имейл, заявка за среща и др.).

Следният примерен код демонстрира как да се свържете с Exchange сървър и да извлечете информация за типа съобщение от папката Изтрити.

Запазване на съобщения, използвайки Exchange Web Services (EWS)

Aspose.Email ви позволява да извличате съобщения от пощенска кутия на Exchange сървър и да ги запазвате в различни формати, като EML, потоци в паметта и MSG. Примерите по-долу демонстрират как да получим информация за съобщенията и как да ги съхраним, използвайки IEWSClient API.

Запазване на съобщения като EML файлове

За запазване на съобщения от пощенска кутия като EML файлове:

  1. Създайте един IEWSClient инстанция, използвайки валидни данни за достъп.
  2. Извикайте ListMessages() за извличане на ExchangeMessagesInfoCollection.
  3. Обхождайте колекцията, за да достъпите уникалното URI на всяко съобщение.
  4. Извикайте SaveMessage() за съхраняване на всяко съобщение на диска във формат EML.

Следният примерен код демонстрира как да запишете имейл съобщения от входящата кутия на Exchange сървър като отделни EML файлове локално, използвайки Aspose.Email за C++.

Записване на съобщения в поток в паметта

Вместо да ги записвате на диск, можете да запишете съобщенията в поток в паметта — полезно за съхраняване на имейли в база данни или обработка в паметта.

Следният примерен код демонстрира как да запишете имейл съобщения от входящата кутия на Exchange сървър в потоци в паметта.

Записване на съобщения във формат MSG

За запазване на съобщения като MSG:

  1. Извлечете съобщението, използвайки FetchMessage(), което връща MailMessage.
  2. Извикайте MailMessage::Save() с опции за запазване във MSG.

Следният примерен код демонстрира как да извлечете и запишете имейл съобщения от входящата кутия на Exchange сървър като файлове във формат Outlook MSG.

Извличане на детайли за съобщението по URI

Когато има налично само уникално URI на съобщение, все още можете да извлечете пълните ExchangeMessageInfo обекти. The IEWSClient::ListMessages() претоварената версия приема списък от ID на съобщения (URI) и връща ExchangeMessageInfoCollection. Използвайте тази функция, когато съхранявате или получавате URI на съобщения външно и се нуждаете от зареждане на метаданни (тема, подател, размер и др.) без изтегляне на пълните съобщения.

Следният примерен код демонстрира как да създадете няколко имейл съобщения на Exchange сървър и след това да извлечете информацията за тях, използвайки уникални идентификатори.

Извличане на пълното съдържание на съобщението

ListMessages() връща резюме на информацията (тема, подател, ID‑та). За зареждане на пълното съдържание на съобщението — тяло, хедъри, прикачени файлове — използвайте FetchMessage().

Следният примерен код демонстрира как да извлечете пълни съобщения от входящата кутия на Exchange сървър и да извлечете информация за прикачените файлове:

  1. Създайте един IEWSClient екземпляр.
  2. Извикайте ListMessages() за получаване на основните метаданни на съобщението.
  3. Извлечете UniqueUri за всяко съобщение.
  4. Извикайте FetchMessage() за извличане на пълните детайли на съобщението.

Извличане на размер на съобщението (без изтегляне на цялото съобщение)

Aspose.Email предоставя информация за размера на съобщението без да изтегля целия имейл, чрез ExchangeMessageInfo::Size свойство.

Това е полезно за:

  • статистика на пощенската кутия
  • изчисления на квотите
  • филтриране на големи съобщения преди изтегляне

Следният примерен код демонстрира как да изброите и покажете метаданните на съобщения, включително размера, от входящата кутия на Exchange сървър.

Изтегляне на имейли от публични папки в Exchange

Публичните папки в Exchange позволяват съхранението на споделени съобщения между потребители.

Aspose.Email IEWSClient Позволява ви да извършвате следните операции с тези папки и съхранените в тях съобщения:

  • Изброяване на публични папки
  • Рекурсивно преглеждане на подпапки
  • Изтегляне на съобщения и запазването им (например като MSG файлове)

Бележка: Необходим е Microsoft Exchange Server 2007 или по-нова версия, тъй като по-ранните версии не поддържат EWS.

Следният примерен код демонстрира как рекурсивно да изтеглите съобщения от всички публични папки и техните подпапки на Exchange сървър и да ги запишете локално като Outlook MSG файлове.

Преместване на съобщения между папки в Exchange

Можете да преместите съобщения от една папка в Exchange в друга, като използвате IEWSClient::MoveItem метод. Изисква:

  • Уникалното URI на съобщението за преместване.
  • Уникалното URI на целевата папка.

Следният примерен код демонстрира как да филтрирате и преместите конкретни имейл съобщения от входящата кутия на Exchange сървър в друга папка въз основа на съдържателни критерии.

  1. Свържете се с Exchange сървър, използвайки EWS данни за достъп.
  2. Получете информация за пощенската кутия (URI‑та на папките).
  3. Избройте всички съобщения от входящата кутия.
  4. Обхождайте всяко съобщение.
  5. Проверете дали темата съдържа "process this message".
  6. Премества съвпадащите съобщения в папката Изтрити.
  7. Извежда потвърждение за всяко преместено съобщение.

Изтриване на съобщения от папка в Exchange

Можете да изтривате имейл съобщения от папка с помощта на IEWSClient->DeleteMessage метод. Той приема уникалния URI на съобщението като параметър.

Следният примерен код демонстрира как да филтрирате и изтриете конкретни имейл съобщения от входящата кутия на Exchange сървър, въз основа на критерий за тема.

  1. Обхождане на съобщения в входящата кутия.
  2. Обработвайте съобщенията според определени критерии (в този пример намираме ключова дума в темата на съобщението).
  3. Изтриване на съвпадащи съобщения.

Копиране на съобщения в друга папка в Exchange

Използвайте IEWSClient::CopyItem за дублиране на съобщение в различна папка. Претоварената версия връща URI на новосъздаденото копие.

Следният примерен код демонстрира как да създадете имейл съобщение в Exchange сървър и да го копирате в друга папка.