Работа с почтовым ящиком Exchange и сообщениями
Получение информации о почтовом ящике с использованием EWS
Вы можете получить информацию о почтовом ящике с сервера Exchange, вызвав метод GetMailboxInfo класса IEWSClient. Он возвращает экземпляр типа ExchangeMailboxInfo. Получите информацию о почтовом ящике из свойств, таких как MailboxUri, InboxUri и DraftsUri. Эта статья показывает, как получить доступ к информации о почтовом ящике с использованием Exchange Web Services.
Для подключения к серверу Exchange с использованием Exchange Web Services (EWS) используйте класс IEWSClient. Этот класс использует EWS для подключения и управления элементами на сервере Exchange. Следующий кодовый Snippet показывает, как получить информацию о почтовом ящике с использованием обменных веб-сервисов.
Отправка электронных сообщений
Вы можете отправлять электронные сообщения с использованием сервера Exchange с помощью метода IEWSClient->Send(), который принимает экземпляр MailMessage в качестве параметра и отправляет электронное письмо. Эта статья объясняет, как отправлять электронные сообщения с использованием Exchange Web Services.
Следующий кодовый Snippet показывает, как отправить электронные сообщения с использованием IEWSClient.
Чтение электронных писем из почтового ящика другого пользователя
Некоторые учетные записи на серверах Exchange имеют право доступа к нескольким почтовым ящикам, и некоторые пользователи имеют несколько учетных записей электронной почты на одном сервере Exchange. В обоих случаях пользователи могут получать доступ к почтовым ящикам других пользователей с помощью Aspose.Email. Этот API предоставляет механизм для доступа к папкам и электронным письмам из других почтовых ящиков с использованием класса IEWSClient. Эта функциональность может быть достигнута с использованием перегруженного метода GetMailboxInfo() и предоставлением адреса электронной почты пользователя в качестве параметра.
Следующий кодовый Snippet показывает, как читать электронные письма с использованием класса IEWSClient.
Список сообщений
Список электронных сообщений в почтовом ящике Exchange можно получить, вызвав метод ListMessages. Получите основную информацию о сообщениях, такую как тему, отправителя, получателя и идентификатор сообщения, используя метод ListMessages.
Простой список сообщений
Чтобы перечислить сообщения в почтовом ящике Exchange:
- Создайте экземпляр класса IEWSClient.
- Вызовите метод ListMessages, чтобы получить коллекцию сообщений.
- Пройдите через коллекцию и отображайте информацию о сообщениях.
Следующий кодовый Snippet показывает, как подключиться к серверу Exchange с использованием EWS и перечислить сообщения из папки «Входящие».
Перечисление сообщений из разных папок
Вышеуказанный кодовый Snippet перечисляет все сообщения в папке «Входящие». Также возможно получить список сообщений из других папок. Метод ListMessages принимает URI папки в качестве параметра. При условии, что URI папки действителен, вы можете получить список сообщений из этой папки. Используйте IEWSClient->get_MailboxInfo->xxxFolderUri свойство, чтобы получить URI различных папок. Остальная часть кода такая же, как для получения списка сообщений. Следующий кодовый Snippet показывает, как перечислить сообщения из разных папок с использованием EWS.
Перечисление сообщений с поддержкой постраничного вывода
Следующий кодонов Snippet показывает, как получить список сообщений с поддержкой постраничного вывода.
Получение информации о типах сообщений из ExchangeMessageInfo
Сохранение сообщений
Эта статья показывает, как получить сообщения из почтового ящика сервера Exchange и сохранить их на диск в форматах EML и MSG:
- Сохранить в формате EML на диске.
- Сохранить в потоке памяти.
- Сохранить в формате MSG.
Сохранение сообщений в формате EML
Чтобы получить сообщения и сохранить в формате EML:
- Создайте экземпляр класса IEWSClient.
- Укажите mailboxUri, имя пользователя, пароль и домен.
- Вызовите метод IEWSClient->ListMessages(), чтобы получить экземпляр коллекции ExchangeMessagesInfoCollection.
- Пройдите через коллекцию ExchangeMessagesInfoCollection, чтобы получить уникальный URI для каждого сообщения.
- Вызовите метод IEWSClient->SaveMessage() и передайте уникальный URI и место сохранения в качестве параметров.
Следующий кодовый Snippet показывает, как использовать EWS для подключения к серверу Exchange и сохранения сообщений в виде файлов EML.
Сохранение сообщений в поток памяти
Вместо того, чтобы сохранять файлы EML на диск, их можно сохранить в поток памяти. Это полезно, когда вы хотите сохранить поток в каком-то месте хранения, например, в базе данных. После того как поток был сохранен в базе данных, вы можете перезагрузить файл EML в классе MailMessage. Следующий кодовый Snippet показывает, как сохранить сообщения из почтового ящика сервера Exchange в поток памяти с использованием EWS.
Сохранение сообщений в формате MSG
Метод IEWSClient->SaveMessage() может напрямую сохранить сообщение в формате EML. Чтобы сохранить сообщения в формате MSG, сначала вызовите метод IEWSClient->FetchMessage(), который возвращает экземпляр класса MailMessage. Затем вызовите метод MailMessage->Save(), чтобы сохранить сообщение в MSG. Следующий кодовый Snippet показывает, как получить сообщения из почтового ящика сервера Exchange и сохранить их в формате MSG с использованием EWS.
Получение ExchangeMessageInfo из URI сообщения
Электронное сообщение представляется своим уникальным идентификатором, URI, и является неотъемлемой частью объекта ExchangeMessageInfo. В случае, если доступен только URI сообщения, объект ExchangeMessageInfo также можно получить с помощью этой доступной информации. Перегруженная версия метода ListMessages принимает список идентификаторов и возвращает коллекцию ExchangeMessageInfoCollection. Следующий кодовый Snippet показывает, как получить ExchangeMessageInfo из URI сообщения.
Получение сообщений из почтового ящика сервера Exchange
Метод ListMessages() используется для получения списка сообщений из почтового ящика сервера Exchange. Метод ListMessages() получает основную информацию о сообщениях, например, тему, идентификатор сообщения, отправителя и получателя. Чтобы получить полные данные о сообщении, Aspose.Email предоставляет метод IEWSClient->FetchMessage(). Этот метод принимает URI сообщения в качестве параметра и возвращает экземпляр класса MailMessage. Класс MailMessage затем предоставляет детали сообщения, такие как текст, заголовки и вложения. Чтобы получить сообщения из почтового ящика сервера Exchange:
- Создайте экземпляр типа IEWSClient.
- Укажите имя сервера, имя пользователя, пароль и домен.
- Вызовите метод IEWSClient->ListMessages(), чтобы получить ExchangeMessagesInfoCollection.
- Пройдите через коллекцию ExchangeMessagesInfoCollection, чтобы получить значения ExchangeMessageInfo->get_UniqueUri().
- Вызовите IEWSClient->FetchMessage() и передайте ExchangeMessageInfo->get_UniqueUri() в качестве параметра.
Следующий кодовый Snippet демонстрирует получение всех сообщений с использованием EWS.
Предварительное получение размера сообщения
Microsoft Outlook InterOp предоставляет возможность извлечения размера сообщения перед фактическим получением полного сообщения с сервера. В случае API Aspose.Email сводная информация, полученная с обменного сервера, представлена классом ExchangeMessageInfo. Он предоставляет возможность получения размера сообщения с помощью свойства Size. Для получения размера сообщения стандартный вызов IEWSClient->ListMessages() используется для извлечения ExchangeMessagesInfoCollection. Следующий кодовый Snippet показывает, как отобразить размер сообщения с использованием класса ExchangeMessageInfo.
Загрузка сообщений из общих папок
Microsoft Exchange Server позволяет пользователям создавать общие папки и размещать в них сообщения. Чтобы сделать это через ваше приложение, используйте класс Aspose.Email EWSClient, чтобы подключиться к серверу Exchange и читать и загружать сообщения и записи из общих папок. Следующий кодовый Snippet показывает, как читать все общие папки и подпапки, а также перечислять и загружать любые сообщения, найденные в этих папках. Этот пример работает только с Microsoft Exchange Server 2007 и выше, поскольку только они поддерживают EWS.
Перемещение сообщений
Вы можете перемещать электронные сообщения из одной папки в другую с помощью метода IEWSClient Move. Он принимает следующие параметры:
- Уникальный URI сообщения, которое необходимо переместить.
- Уникальный URI папки назначения.
Перемещение сообщений между папками
Следующий кодовый Snippet показывает, как переместить сообщение в почтовом ящике из папки «Входящие» в папку под названием «Обработано». В этом примере приложение:
- Читает сообщения из папки «Входящие».
- Обрабатывает некоторые сообщения на основе определенных критериев (в этом примере мы находим ключевое слово в теме сообщения).
- Перемещает сообщения, которые соответствуют данному условию, в папку «Обработано».
Удаление сообщений
Вы можете удалить электронные сообщения из папки с помощью метода IEWSClient->DeleteMessage. Он принимает уникальный URI сообщения в качестве параметра.
Следующий кодовый Snippet показывает, как удалить сообщение из папки «Входящие». В этом примере код:
- Читает сообщения из папки «Входящие».
- Обрабатывает сообщения на основе определенных критериев (в этом примере мы находим ключевое слово в теме сообщения).
- Удаляет сообщение.
Копирование сообщений
API Aspose.Email позволяет копировать сообщение из одной папки в другую с помощью метода IEWSClient->CopyItem. Перегруженная версия этого метода возвращает уникальный URI скопированного сообщения, как показано в этой статье.
Копирование сообщения в другую папку
Следующий кодовый Snippet показывает, как скопировать сообщение в другую папку.