Поделиться через


Получение вложений элемента Outlook из Exchange

API JavaScript для Office включает API для получения вложений и их содержимого из сообщений и встреч в Outlook. В следующей таблице перечислены эти API вложений, режимы Outlook, в которых они работают, и минимальный набор обязательных для работы почтовых ящиков.

API Поддерживаемые режимы Outlook Минимальный набор требований
Office.context.mailbox.item.attachments Чтение 1.1
Office.context.mailbox.item.getAttachmentsAsync Создание 1.8
Office.context.mailbox.item.getAttachmentContentAsync Чтение
Создание
1.8

Если клиент Outlook, в котором выполняется надстройка, не поддерживает необходимый набор минимальных требований, вы можете получить вложение и его содержимое непосредственно из Exchange. Выберите вкладку для применимой среды Exchange.

В Exchange Online средах надстройка должна выполнить следующие действия, чтобы получить вложения непосредственно из Exchange.

  1. Получите маркер доступа к Microsoft Graph.
  2. Получите идентификатор элемента соответствующего сообщения или встречи.
  3. Используйте Microsoft Graph для получения вложения и его свойств.

Каждый шаг рассматривается в следующих разделах.

Получение токена доступа

Microsoft Graph предоставляет доступ к почтовым данным пользователей Outlook. Прежде чем надстройка сможет получать данные из Microsoft Graph, она должна сначала получить маркер доступа для авторизации. Чтобы получить маркер доступа, используйте проверку подлинности вложенного приложения (NAA). Дополнительные сведения о NAA см. в статье Включение единого входа в надстройке Office с помощью проверки подлинности вложенного приложения (предварительная версия).

Получение идентификатора элемента почты

Чтобы получить сведения о вложении с помощью Microsoft Graph, вам потребуется идентификатор элемента сообщения или встречи, включающего вложение. Используйте применимый API JavaScript для Office, чтобы получить идентификатор элемента.

  • Режим чтения: вызов office.context.mailbox.item.itemId. В не мобильных клиентах Outlook, так как это свойство возвращает идентификатор, отформатированный для веб-служб Exchange (EWS), необходимо использовать метод Office.context.mailbox.convertToRestId для преобразования идентификатора в формат REST, который может использовать Microsoft Graph.

    // Get the item ID of the current mail item in read mode and convert it into a REST format.
    const itemId = Office.context.mailbox.item.itemId;
    const restId = Office.context.mailbox.convertToRestId(itemId, Office.MailboxEnums.RestVersion.v2_0);
    
  • режим Compose. Метод получения идентификатора элемента зависит от того, сохранен ли почтовый элемент в виде черновика.

    • Если элемент сохранен, вызовите Office.context.mailbox.item.getItemIdAsync.

      // Get the item ID of the current mail item being composed.
      Office.context.mailbox.item.getItemIdAsync((result) => {
          if (result.status === Office.AsyncResultStatus.Failed) {
              console.error(result.error.message);
              return;
          }
      
          const itemId = result.value;
      });
      

      Совет

      Метод getItemIdAsync появился в наборе обязательных почтовых ящиков 1.8. Если клиент Outlook, в котором запущена надстройка, не поддерживает почтовый ящик 1.8, используйте Office.context.mailbox.item.saveAsync вместо него, так как этот метод появился в почтовом ящике 1.3.

    • Если элемент еще не сохранен, вызовите office.context.mailbox.item.saveAsync , чтобы инициировать сохранение и получить идентификатор элемента.

      // Save the current mail item being composed to get its ID.
      Office.context.mailbox.item.saveAsync((result) => {
          if (result.status === Office.AsyncResultStatus.Failed) {
              console.error(result.error.message);
              return;
          }
      
          const itemId = result.value;
      });
      

      Примечание.

      Если клиент Outlook находится в кэшированном режиме, синхронизация сохраненного элемента с сервером может занять некоторое время. Пока элемент не будет синхронизирован, при использовании идентификатора элемента будет возвращена ошибка.

Использование Microsoft Graph

После получения маркера доступа и идентификатора почтового элемента, содержащего вложение, вы можете выполнить запрос Microsoft Graph. Сведения и примеры получения вложения с помощью Microsoft Graph см. в разделе Получение вложения.

См. также