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

Получение информации о почтовом ящике с помощью WebDav

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

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

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

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

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

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

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

Чтобы отправить электронные письма с использованием сервера Exchange:

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

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

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

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

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

Перечисление сообщений

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

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

Чтобы перечислить сообщения в почтовом ящике Exchange:

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

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

Перечисление сообщений из разных папок

В приведенных выше фрагментах кода перечислены все сообщения в папке “Входящие”. Также можно получить список сообщений из других папок. Метод ExchangeClient.ListMessages() принимает URI папки в качестве параметра. Пока URI папки действителен, вы можете получить список сообщений из этой папки. Используйте свойство ExchangeClient.MailboxInfo.xxxFolderUri, чтобы получить URI различных папок. Остальная часть кода такая же, как для получения списка сообщений. Следующий фрагмент кода демонстрирует, как перечислить сообщения из разных папок, используя ExchangeClient.

Перечисление сообщений по ID

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Предварительное получение размера сообщения

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

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

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

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

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

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

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

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

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

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

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

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