Работа с почтовым ящиком и сообщениями Exchange

Получение данных почтового ящика с помощью EWS

Сведения о почтовом ящике можно получить с сервера Exchange, позвонив в GetMailboxInfo метод IEWSClient класс. Он возвращает экземпляр типа ExchangeMailboxInfo. Получите информацию о почтовом ящике из таких свойств, как MailboxURI, InboxURI и DraftSURI. В этой статье показано, как получить доступ к сведениям о почтовом ящике с помощью веб-служб Exchange.

Чтобы подключиться к серверу Exchange с помощью веб-служб Exchange (EWS), используйте IEWSClient класс. В этом классе используется EWS для подключения к элементам на сервере Exchange и управления ими. В следующем фрагменте кода показано, как получить информацию о почтовом ящике с помощью веб-служб Exchange.

Отправка сообщений электронной почты

Вы можете отправлять сообщения электронной почты с помощью сервера Exchange с IEWSClient->Send() метод принимает MailMessage экземпляр в качестве параметра и отправляет электронное письмо. В этой статье объясняется, как отправлять сообщения электронной почты с помощью веб-служб Exchange.

В следующем фрагменте кода показано, как отправлять сообщения электронной почты с помощью IEWSClient.

Чтение писем из почтового ящика другого пользователя

Некоторые учетные записи на серверах Exchange имеют право доступа к нескольким почтовым ящикам, а некоторые пользователи имеют несколько учетных записей электронной почты на одном сервере Exchange. В обоих случаях пользователи могут получить доступ к почтовым ящикам других пользователей с помощью Aspose.Email. Этот API предоставляет механизм доступа к папкам и электронным письмам из других почтовых ящиков с помощью IEWSClient класс. Эта функциональность может быть достигнута с помощью перегруженных GetMailboxInfo() метод и указание адреса электронной почты пользователя в качестве параметра.

В следующем фрагменте кода показано, как читать электронные письма с помощью IEWSClient class.

Список сообщений

Список сообщений электронной почты в почтовом ящике Exchange можно получить, позвонив в ListMessages метод. Получите базовую информацию о сообщениях, такую как тема, от кого и идентификатор сообщения, используя ListMessages method.

Простой список сообщений

Чтобы вывести список сообщений в почтовом ящике Exchange, выполните следующие действия:

  1. Создайте экземпляр IEWSClient class.
  2. Позвоните ListMessages метод получения коллекции сообщений.
  3. Просмотрите коллекцию и отобразите информацию о сообщениях.

В следующем фрагменте кода показано, как подключиться к серверу Exchange с помощью EWS, и перечислены сообщения из папки «Входящие».

Список сообщений из разных папок

В приведенном выше фрагменте кода перечислены все сообщения в папке «Входящие». Можно также получить список сообщений из других папок. ListMessages метод принимает URI папки в качестве параметра. Если URI папки действителен, вы можете получить список сообщений из этой папки. Используйте IEWSClient->get_MailboxInfo->Свойство xxxFolderUri для получения URI разных папок. В остальном код такой же, как и при получении списка сообщений. В следующем фрагменте кода показано, как составить список сообщений из разных папок с помощью EWS.

Список сообщений с поддержкой пейджинга

В следующем фрагменте кода показано, как получить список сообщений с поддержкой пейджинга.

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

Сохранение сообщений

В этой статье показано, как получать сообщения из почтового ящика Exchange Server и сохранять их на диск в форматах EML и MSG:

  • Сохранить как EML на диске.
  • Сохранить в потоке памяти.
  • Сохранить как MSG.

Сохранение сообщений в EML

Чтобы получать сообщения и сохранять их в формате EML, выполните следующие действия:

  1. Создайте экземпляр IEWSClient class.
  2. Укажите URI почтового ящика, имя пользователя, пароль и домен.
  3. Позвоните IEWSClient->ListMessages() метод получения экземпляра ExchangeMessagesInfoCollection collection.
  4. Пройдите через ExchangeMessagesInfoCollection коллекция для получения уникального URI для каждого сообщения.
  5. Позвоните IEWSClient->SaveMessage() метод и передайте уникальный URI и сохраните местоположение в качестве параметров.

В следующем фрагменте кода показано, как использовать EWS для подключения к серверу Exchange и сохранения сообщений в виде файлов EML.

Сохранение сообщений в потоке памяти

Вместо сохранения файлов EML на диск можно сохранить их в потоке памяти. Это удобно, если вы хотите сохранить поток в каком-либо месте хранения, например в базе данных. Как только поток будет сохранен в базе данных, вы можете перезагрузить файл EML в MailMessage класс. В следующем фрагменте кода показано, как сохранять сообщения из почтового ящика Exchange Server в поток памяти с помощью EWS.

Сохранение сообщений в формате MSG

The IEWSClient->SaveMessage() метод может напрямую сохранить сообщение в формате EML. Чтобы сохранить сообщения в формате MSG, сначала вызовите IEWSClient->FetchMessage() метод, который возвращает экземпляр MailMessage класс. Затем позвоните MailMessage->Save() метод сохранения сообщения в MSG. В следующем фрагменте кода показано, как получать сообщения из почтового ящика Exchange Server и сохранять их в формате MSG с помощью EWS.

Получение сведений о сообщениях Exchange из URI сообщения

Сообщение электронной почты представлено уникальным идентификатором (URI) и является неотъемлемой частью объекта ExchangeMessageInfo. Если доступен только URI сообщения, то ExchangeMessageInfo объект также можно получить, используя эту доступную информацию. Версия, предназначенная для перегрузки ListMessages принимает список идентификаторов и возвращает ExchangeMessageInfoCollection коллекция. В следующем фрагменте кода показано, как получить ExchangeMessageInfo из URI сообщения.

Получение сообщений из почтового ящика сервера Exchange

The ListMessages() метод используется для получения списка сообщений из почтового ящика Exchange Server. ListMessages() метод получает основную информацию о сообщениях, например тему, идентификатор сообщения, от и до. Чтобы получить полную информацию о сообщении, Aspose.Email предоставляет IEWSClient->FetchMessage() метод. Этот метод принимает URI сообщения в качестве параметра и возвращает экземпляр MailMessage класс. MailMessage Затем класс предоставляет сведения о сообщении, такие как текст, заголовки и вложения. Чтобы получить сообщения из почтового ящика сервера Exchange, выполните следующие действия:

  1. Создайте экземпляр типа IEWSClient.
  2. Укажите имя сервера, имя пользователя, пароль и домен.
  3. Call IEWSClient->ListMessages() метод получения ExchangeMessagesInfoCollection.
  4. Пройдите через ExchangeMessagesInfoCollection коллекция, которую можно получить ExchangeMessageInfo->get_UniqueUri() values.
  5. Call IEWSClient->FetchMessage() и сдай ExchangeMessageInfo->get_UniqueUri() в качестве параметра.

Следующий фрагмент кода демонстрирует получение всех сообщений с помощью EWS.

Размер сообщения перед выборкой

Microsoft Outlook InterOp предоставляет возможность получения размера сообщения до фактической загрузки всего сообщения с сервера. В случае Aspose.Email API сводная информация, полученная с сервера Exchange, представлена в виде ExchangeMessageInfo класс. Он предоставляет возможность получения размера сообщения с помощью Size имущество. Чтобы узнать размер сообщения, стандартным вызовом IEWSClient->ListMessages() используется для извлечения ExchangeMessagesInfoCollection. В следующем фрагменте кода показано, как отображать размер сообщения с помощью ExchangeMessageInfo class.

Загрузка сообщений из общедоступных папок

Microsoft Exchange Server позволяет пользователям создавать общедоступные папки и публиковать в них сообщения. Чтобы сделать это через приложение, используйте Aspose.Email EWSClient класс для подключения к серверу Exchange и чтения и загрузки сообщений и сообщений из общедоступных папок. В следующем фрагменте кода показано, как читать все общедоступные папки и подпапки, а также перечислять и загружать все сообщения, обнаруженные в этих папках. Этот пример работает только с Microsoft Exchange Server 2007 или выше, поскольку только они поддерживают EWS.

Перемещение сообщений

Вы можете перемещать сообщения электронной почты из одной папки в другую с помощью IEWSClient метод класса Move. Он принимает следующие параметры:

  • Уникальный URI сообщения, которое нужно переместить.
  • Уникальный URI целевой папки.

Перемещение сообщений между папками

В следующем фрагменте кода показано, как переместить сообщение в почтовом ящике из папки «Входящие» в папку «Обработано». В этом примере приложение:

  1. Читает сообщения из папки «Входящие».
  2. Обрабатывает некоторые сообщения на основе некоторых критериев (в этом примере мы находим ключевое слово в теме сообщения).
  3. Перемещает сообщения, удовлетворяющие заданному условию, в обработанную папку.

Удаление сообщений

Вы можете удалить сообщения электронной почты из папки с помощью IEWSClient->DeleteMessage метод. В качестве параметра он принимает уникальный URI сообщения.

В следующем фрагменте кода показано, как удалить сообщение из папки «Входящие». Для целей данного примера используется следующий код:

  1. Читает сообщения из папки «Входящие».
  2. Обрабатывайте сообщения на основе некоторых критериев (в этом примере мы находим ключевое слово в теме сообщения).
  3. Удаляет сообщение.

Копирование сообщений

Aspose.Email API позволяет копировать сообщение из одной папки в другую с помощью IEWSClient->CopyItem метод. Перегруженная версия этого метода возвращает уникальный URI скопированного сообщения, как показано в этой статье.

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

В следующем фрагменте кода показано, как скопировать сообщение в другую папку.