次の方法で共有


イベント ベースのアクティブ化のために Outlook アドインを構成する

イベント ベースのアクティブ化機能を使用すると、ユーザーはアドインを明示的に起動することなく、アドインを使用してタスクを完了できます。 アドインは、特定のイベントが発生したときにタスクを実行します。たとえば、メール アイテムが送信される前に、受信者が変更されたときにメール アイテムの添付ファイルを自動的に更新したり、特定の添付ファイルのチェックを行ったりします。 イベント ベースのアクティブ化を作業ウィンドウと関数コマンドと統合することもできます。

注:

この機能のサポートは 要件セット 1.10 で導入され、追加のイベントが後続の要件セットで使用できるようになりました。 イベントの最小要件セットと、それをサポートするクライアントとプラットフォームの詳細については、「Exchange サーバーと Outlook クライアントでサポートされるサポートされるイベントと要件セット」を参照してください。

モバイル デバイスで Outlook で実行されるイベント ベースのアドインを実装する方法については、「Outlook モバイル アドインでイベント ベースのアクティブ化を実装する」を参照してください。

サポートされるイベント

次の表に、現在使用可能なイベントと、各イベントでサポートされているクライアントを示します。 イベントが発生すると、ハンドラーはイベントの種類に固有の詳細を含む event オブジェクトを受け取ります。 [説明] 列には、該当する場合は関連オブジェクトへのリンクが含まれます。

イベント標準名
アドインのみのマニフェスト名
Microsoft 365 名の統合マニフェスト 説明 最小要件セットとサポートされているクライアント
OnNewMessageCompose newMessageComposeCreated 新しいメッセージの作成時 (返信、全員への返信、転送を含む) が、下書きなど編集時には含まれません。 1.10
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
  • Android2
  • iOS2
OnNewAppointmentOrganizer newAppointmentOrganizerCreated 新しい予定を作成するが、既存の予定を編集していない場合。 1.10
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnMessageAttachmentsChanged messageAttachmentsChanged メッセージの作成中に添付ファイルを追加または削除する場合。

イベント固有のデータ オブジェクト: AttachmentsChangedEventArgs
1.11
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnAppointmentAttachmentsChanged appointmentAttachmentsChanged 予定の作成中に添付ファイルを追加または削除する場合。

イベント固有のデータ オブジェクト: AttachmentsChangedEventArgs
1.11
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnMessageRecipientsChanged messageRecipientsChanged メッセージの作成中に受信者を追加または削除する場合。

イベント固有のデータ オブジェクト: RecipientsChangedEventArgs
1.11
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
  • Android2
  • iOS2
OnAppointmentAttendeesChanged appointmentAttendeesChanged 予定の作成中に出席者を追加または削除する場合。

イベント固有のデータ オブジェクト: RecipientsChangedEventArgs
1.11
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnAppointmentTimeChanged appointmentTimeChanged 予定の作成中に日付/時刻を変更する場合。

イベント固有のデータ オブジェクト: AppointmentTimeChangedEventArgs

重要: 予定表上の別の日付/時刻スロットに予定をドラッグ アンド ドロップしても、 OnAppointmentTimeChanged イベントは発生しません。 日付/時刻が予定から直接変更された場合にのみ発生します。
1.11
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnAppointmentRecurrenceChanged appointmentRecurrenceChanged 予定の作成中に繰り返しの詳細を追加、変更、または削除する場合。 日付/時刻が変更された場合、 OnAppointmentTimeChanged イベントも発生します。

イベント固有のデータ オブジェクト: RecurrenceChangedEventArgs
1.11
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnInfoBarDismissClicked infoBarDismissClicked メッセージまたは予定アイテムの作成中に通知を無視する場合。 通知を追加したアドインのみが通知されます。

イベント固有のデータ オブジェクト: InfobarClickedEventArgs
1.11
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnMessageSend messageSending メッセージ 項目の送信時。 詳細については、 スマート アラートのチュートリアルを試してください 1.12
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnAppointmentSend appointmentSending 予定アイテムを送信する場合。 詳細については、「スマート アラートを使用して Outlook アドインで OnMessageSend イベントと OnAppointmentSend イベントを処理する」を参照してください。 1.12
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnMessageCompose messageComposeOpened 新しいメッセージの作成 (返信、全員への返信、転送を含む) または下書きを編集する場合。 1.12
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnAppointmentOrganizer appointmentOrganizerOpened 新しい予定を作成するか、既存の予定を編集する場合。 1.12
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnMessageFromChanged messageFromChanged 構成されているメッセージの [差 出人] フィールドでメール アカウントを変更する場合。 詳細については、「 Exchange アカウントを切り替えるときに署名を自動的に更新する」を参照してください。 1.13
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnAppointmentFromChanged appointmentFromChanged 構成中の予定の開催者フィールドでメール アカウントを変更する場合。 詳細については、「 Exchange アカウントを切り替えるときに署名を自動的に更新する」を参照してください。 1.13
OnSensitivityLabelChanged sensitivityLabelChanged メッセージまたは予定の作成中に秘密度ラベルを変更する場合。 メール アイテムの秘密度ラベルを管理する方法については、「 作成モードでメッセージまたは予定の秘密度ラベルを管理する」を参照してください。

イベント固有のデータ オブジェクト: SensitivityLabelChangedEventArgs
1.13
  • Web ブラウザー
  • Windows (新規 およびクラシック1)
  • 新しい Mac UI
OnMessageReadWithCustomAttachment 使用不可 読み取りモードで特定の添付ファイルの種類を含むメッセージを開くとき。 プレビュー3
  • Windows (クラシック1)
OnMessageReadWithCustomHeader 使用不可 読み取りモードで特定のインターネット ヘッダー名を含むメッセージを開くとき。 プレビュー3
  • Windows (クラシック1)

注:

従来の Outlook on Windows の 1 つのイベント ベースのアドインを実行するには、バージョン 1903 (ビルド 18362) または Windows Server 2019 バージョン 1903 の最小Windows 10が必要です。

2 Outlook on mobile では、メールボックス要件セット 1.5 までの API がサポートされます。 ただし、 OnNewMessageCompose イベントなど、後の要件セットで導入された追加の API と機能のサポートが有効になりました。 詳細については、「 Outlook モバイル アドインでイベント ベースのアクティブ化を実装する」を参照してください。

3OnMessageReadWithCustomAttachment イベントと OnMessageReadWithCustomHeader イベントをプレビューするには、従来の Outlook on Windows バージョン 2312 (ビルド 17110.10000) 以降をインストールする必要があります。 次に、 Microsoft 365 Insider プログラム に参加し、[ ベータ チャネル ] オプションを選択して Office ベータ ビルドにアクセスします。

アドインのトラブルシューティング

イベント ベースのアドインを開発するときに、アドインが読み込まれていない、イベントが発生しないなどの問題のトラブルシューティングが必要になる場合があります。 イベント ベースのアドインのトラブルシューティング方法のガイダンスについては、「 イベント ベースおよびスパムレポート アドインのトラブルシューティング」を参照してください。

ユーザーにデプロイする

イベント ベースのアドインは、AppSource から取得した場合でも、管理者が管理するデプロイにのみ制限されます。 ユーザーが AppSource またはアプリ内 Office ストアからアドインを取得した場合、アドインのイベント ベースの機能をアクティブ化することはできません。 AppSource でイベント ベースのアドインを一覧表示する方法の詳細については、「 イベントベースの Outlook アドインの AppSource 一覧オプション」を参照してください。

管理デプロイは、マニフェストをMicrosoft 365 管理センターにアップロードすることによって行われます。 管理ポータルで、ナビゲーション ウィンドウの [設定] セクションを展開し、[ 統合アプリ] を選択します。 [ 統合アプリ ] ページで、[ カスタム アプリのアップロード ] アクションを選択します。

[カスタム アプリのアップロード] アクションが強調表示されているMicrosoft 365 管理センターの [統合アプリ] ページ。

重要

スマート アラート機能を使用するアドインは、マニフェストの送信モード プロパティがプロンプト ユーザーまたはソフト ブロック オプションに設定されている場合にのみ AppSource に発行できます。 アドインの送信モード プロパティが block に設定されている場合、AppSource 検証に失敗するため、organizationの管理者のみが展開できます。

マニフェストの更新プログラムをデプロイする

イベント ベースのアドインは管理者によって展開されるため、マニフェストに対して行った変更には、Microsoft 365 管理センターによる管理者の同意が必要です。 管理者が変更を受け入れるまで、organizationのユーザーはアドインの使用をブロックされます。 管理者の同意プロセスの詳細については、「イベント ベースのアドインをインストールするための同意管理」を参照してください。

イベント ベースのアクティブ化の動作と制限事項

アドインの起動イベント ハンドラーは、実行時間が短く、軽量で、可能な限り非侵襲的である必要があります。 アクティブ化後、アドインは約 300 秒以内にタイムアウトします。これは、イベント ベースのアドインの実行に許可される最大時間です。アドインが起動イベントの処理を完了したことを通知するには、関連付けられているイベント ハンドラーが event.completed メソッドを呼び出す必要があります。 ( event.completed ステートメントの後に含まれるコードは、実行が保証されていないことに注意してください)。アドインが処理するイベントがトリガーされるたびに、アドインが再アクティブ化され、関連するイベント ハンドラーが実行され、タイムアウト ウィンドウがリセットされます。 アドインは、タイムアウト後に終了するか、ユーザーが作成ウィンドウを閉じるか、アイテムを送信します。

ユーザーが同じイベントをサブスクライブする複数のアドインを持っている場合、Outlook プラットフォームは特定の順序でアドインを起動します。 現時点では、アクティブに実行できるイベント ベースのアドインは 5 つだけです。

サポートされているすべての Outlook クライアントで、アドインの実行を完了するには、アドインがアクティブ化された現在のメール アイテムにユーザーを残す必要があります。 現在の項目から移動すると (たとえば、別の新規作成ウィンドウやタブに切り替えるなど)、アドイン操作が終了します。 ただし、 OnMessageSend イベントでアクティブ化するアドインは、実行されている Outlook クライアントに応じて、アイテムの切り替えを異なる方法で処理します。 詳細については、「スマート アラートを使用して Outlook アドインで OnMessageSend イベントと OnAppointmentSend イベントを処理する」の「ユーザーが現在のメッセージから離れる」セクションを参照してください。

アイテムの切り替えに加えて、ユーザーが作成しているメッセージまたは予定を送信すると、イベント ベースのアドインも操作を停止します。

Windows 上の従来の Outlook のイベント ベースのアドイン

従来の Outlook on Windows クライアントで実行するイベント ベースのアドインを開発する場合は、次の点に注意してください。

  • イベント ベースのアクティブ化の処理を実装する JavaScript ファイルでは、インポートはサポートされていません。

  • アドインでは、 Office.onReady()Office.initializeに含まれるコードは実行されません。 代わりに、ユーザーの Outlook バージョンの確認などのスタートアップ ロジックをイベント ハンドラーに追加することをお勧めします。

  • イベント ベースのアクティブ化では、マニフェストで参照されている JavaScript ファイルのみがサポートされます。 イベント処理 JavaScript コードをこの 1 つのファイルにバンドルする必要があります。 マニフェスト内の参照先の JavaScript ファイルの場所は、アドインで使用するマニフェストの種類によって異なります。

    • アドインのみのマニフェスト: <Override><Runtime> ノードの子要素
    • Microsoft 365 の統合マニフェスト: "code" オブジェクトの "script" プロパティ

    大きな JavaScript バンドルでは、アドインのパフォーマンスに問題が発生する可能性があることに注意してください。 大量の操作を前処理して、イベント処理コードに含めないようにすることをお勧めします。

サポートされていない API

UI を変更または変更する一部の Office.js API は、イベント ベースのアドインからは許可されません。ブロックされた API を次に示します。

API メソッド
Office.devicePermission
  • requestPermissionsAsync
Office.context.auth*
  • getAccessToken
  • getAccessTokenAsync
  • Office.context.mailbox
    • displayAppointmentForm
    • displayMessageForm
    • displayNewAppointmentForm
    • displayNewMessageForm
    Office.context.mailbox.item
    • close
    Office.context.ui
    • displayDialogAsync
    • messageParent

    注:

    * OfficeRuntime.auth は、イベント ベースのアクティブ化とシングル サインオン (SSO) をサポートするすべての Outlook バージョンでサポートされていますが、 Office.auth は特定の Outlook ビルドでのみサポートされています。 詳細については、「 イベントベースまたはスパムレポートの Outlook アドインでシングル サインオン (SSO) またはクロスオリジン リソース共有 (CORS) を使用する」を参照してください。

    イベント ハンドラーのプレビュー機能 (従来の Outlook on Windows)

    Windows 上のクラシック Outlook には、コンテンツ配信ネットワーク (CDN) から読み込む代わりに、運用環境とベータ版の Office.js のローカル コピーが含まれています。 既定では、API のローカル運用コピーが参照されます。 API のローカル ベータ コピーを参照するには、コンピューターのレジストリを構成する必要があります。 これにより、従来の Outlook on Windows のイベント ハンドラーで プレビュー機能 をテストできます。

    1. レジストリで、[ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\WebExt\Developer] に移動します。 キーが存在しない場合は、作成します。

    2. EnableBetaAPIsInJavaScript という名前のエントリを作成し、その値を 1 に設定します。

      EnableBetaAPIsInJavaScript レジストリ値は 1 に設定されています。

    シングル サインオン (SSO) を有効にする

    イベント ベースのアドインで SSO を有効にするには、その JavaScript ファイルを既知の URI に追加する必要があります。 このリソースを構成する方法のガイダンスについては、「 イベント ベースまたはスパムレポートの Outlook アドインでシングル サインオン (SSO) またはクロスオリジン リソース共有 (CORS) を使用する」を参照してください。

    外部データを要求する

    外部データを要求するには 、Fetch などの API を使用するか、サーバーと対話するための HTTP 要求を発行する標準 Web API である XMLHttpRequest (XHR) を使用します。

    注:

    アドインが JavaScript 専用ランタイムで動作する場合は、Fetch API 呼び出しで絶対 URL を使用します。 Fetch API 呼び出しの相対 URL は、JavaScript 専用ランタイムではサポートされていません。

    XMLHttpRequest オブジェクトを使用する場合は、 同じ配信元ポリシーCORS (クロスオリジン リソース共有) を必要とする追加のセキュリティ対策を使用する必要があることに注意してください。

    注:

    完全な CORS サポートは、Outlook on the web、Mac、および Windows (新規およびクラシック (バージョン 2201 以降、ビルド 16.0.14813.10000) クライアントで使用できます。

    イベント ベースのアドインから CORS 要求を行うには、アドインとその JavaScript ファイルを既知の URI に追加する必要があります。 このリソースを構成する方法のガイダンスについては、「 イベント ベースまたはスパムレポートの Outlook アドインでシングル サインオン (SSO) またはクロスオリジン リソース共有 (CORS) を使用する」を参照してください。

    関連項目