次の方法で共有


Exchange から Outlook アイテムの添付ファイルを取得する

Office JavaScript API には、Outlook のメッセージや予定から添付ファイルとその内容を取得するための API が含まれています。 次の表に、これらの添付ファイル 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. 該当するメッセージまたは予定のアイテム ID を取得します。
  3. Microsoft Graph を使用して添付ファイルとそのプロパティを取得します。

各手順については、次のセクションで説明します。

アクセス トークンを取得する

Microsoft Graph では、ユーザーの Outlook メール データにアクセスできます。 アドインが Microsoft Graph からデータを取得するには、まず、承認のためにアクセス トークンを取得する必要があります。 アクセス トークンを取得するには、入れ子になったアプリ認証 (NAA) を使用します。 NAA の詳細については、「 入れ子になったアプリ認証 (プレビュー)を使用して Office アドインで SSO を有効にする」を参照してください。

メール アイテムのアイテム ID を取得する

Microsoft Graph を使用して添付ファイルに関する情報を取得するには、添付ファイルを含むメッセージまたは予定のアイテム ID が必要です。 該当する Office JavaScript API を使用して項目 ID を取得します。

  • 読み取りモード: Office.context.mailbox.item.itemId を呼び出します。 モバイル以外の Outlook クライアントでは、このプロパティは Exchange Web Services (EWS) 用に書式設定された ID を返すので、 Office.context.mailbox.convertToRestId メソッドを使用して、ID を Microsoft Graph で使用できる REST 形式に変換する必要があります。

    // 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 モード: アイテム ID を取得する方法は、メール アイテムが下書きとして保存されているかどうかによって異なります。

    • アイテムが保存されている場合は、 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 をサポートしていない場合は、この方法が Mailbox 1.3 で導入されたため、代わりに Office.context.mailbox.item.saveAsync を使用します。

    • アイテムがまだ保存されていない場合は、 Office.context.mailbox.item.saveAsync を呼び出して保存を開始し、アイテム ID を取得します。

      // 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 クライアントがキャッシュ モードの場合、保存したアイテムがサーバーに同期されるまでに時間がかかる場合があります。 アイテムが同期されるまで、アイテム ID を使用するとエラーが返されます。

Microsoft Graph の使用

アクセス トークンと添付ファイルを含むメール アイテムのアイテム ID を取得したら、Microsoft Graph 要求を行うことができます。 Microsoft Graph を使用して添付ファイルを取得する方法の詳細と例については、「 添付ファイルを取得する」を参照してください。

関連項目