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

Получение сведений о почтовом ящике с помощью WebDAV

The ExchangeClient класс содержит элементы, которые можно использовать для получения информации о почтовом ящике с сервера Exchange путем вызова ExchangeClient.GetMailboxInfo() метод. Он возвращает экземпляр типа ExchangeMailboxInfo. Получайте информацию о почтовом ящике из таких объектов, как MailboxUri, InboxUri, и DraftsUri. В этой статье показано, как получить доступ к данным почтового ящика непосредственно с сервера Exchange.

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

  1. Создайте экземпляр ExchangeClient class.
  2. Укажите сервер Exchange, имя пользователя, пароль и домен в поле ExchangeClient constructor.
  3. Позвоните ExchangeClient.GetMailboxSize() метод получения размера почтового ящика.
  4. Позвоните ExchangeClient.GetMailboxInfo() метод получения экземпляра ExchangeMailboxInfo class.
  5. Получите информацию о почтовом ящике с помощью ExchangeMailboxInfo различные свойства класса.

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

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

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

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

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

  1. Создайте экземпляр ExchangeClient class.
  2. Укажите имя сервера, имя пользователя, пароль и домен.
  3. Создайте экземпляр MailMessage class.
  4. Укажите откуда, куда, тему и прочее MailMessage properties.
  5. Позвоните ExchangeClient.Send() способ отправки электронного письма.

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

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

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

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

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

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

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

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

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

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

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

В приведенных выше фрагментах кода перечислены все сообщения в папке «Входящие». Можно также получить список сообщений из других папок. ExchangeClient.ListMessages() метод принимает URI папки в качестве параметра. Если URI папки действителен, вы можете получить список сообщений из этой папки. Используйте свойство ExchangeClient.MailboxInfo.xxxFolderURI для получения URI различных папок. В остальном код аналогичен получению списка сообщений. В следующем фрагменте кода показано, как вывести список сообщений из разных папок с помощью ExchangeClient.

Список сообщений по идентификатору

В приведенном выше фрагменте кода использовался ListMessages метод для перечисления всех сообщений в указанной папке почтового ящика Exchange Server. Если вы заранее знаете идентификатор сообщения, вы можете получить его с помощью ListMessagesbyId() метод. Чтобы получить сообщение, передайте URI папки и идентификатор сообщения. Этот сценарий полезен, если идентификатор сообщения уже известен, например, когда идентификаторы сообщений сохраняются в базе данных. В следующем фрагменте кода показано, как отображать сообщения по идентификатору.

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Создайте экземпляр типа ExchangeClient.
  2. Укажите URI почтового ящика, имя пользователя, пароль и домен.
  3. Call ListMessages чтобы получить ExchangeMessagesInfoCollection.
  4. Пройдите через ExchangeMessagesInfoCollection коллекция, которую можно получить ExchangeMessageInfo.UniqueURI values.
  5. Call ExchangeClient.FetchMessage() и сдай  ExchangeMessageInfo.UniqueURI в качестве параметра.

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

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

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

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

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

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

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

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

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

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

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

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

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

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