Outlook モバイル アドインでイベント ベースのアクティブ化を実装する

イベント ベースのアクティブ化機能を使用して、Android または iOS 上の Outlook で特定のイベントが発生したときに、新しいメッセージの作成などの操作を自動的にアクティブ化して完了するアドインを開発します。

次のセクションでは、構成中の新しいメッセージに署名を自動的に追加する Outlook モバイル アドインを開発する方法について説明します。 ここでは、モバイル アドインでイベント ベースのアクティブ化を実装する方法のサンプル シナリオについて説明します。 現在のアドインの他のシナリオを調べて、モバイル ユーザー エクスペリエンスを大幅に向上させます。

Outlook on Windows (クラシックおよび 新規 (プレビュー))、Mac、および Web 用のイベント ベースのアドインを実装する方法については、「 イベントベースのアクティブ化のために Outlook アドインを構成する」を参照してください。

注:

Outlook on Android および iOS では、メールボックス要件セット 1.5 までのみサポートされます。 ただし、イベント ベースのアクティブ化機能をサポートするために、後の要件セットの一部の API がモバイル クライアントで有効になっています。 この例外の詳細については、「 サポートされるその他の API」を参照してください。

サポートされるクライアント

このチュートリアルで開発するアドインは、Outlook on Android およびバージョン 4.2352.0 以降の iOS でサポートされています。 この機能を実行するには、Microsoft 365 サブスクリプションが必要です。

環境を設定する

Office アドイン用 Yeoman ジェネレーターを使用してアドイン プロジェクトを作成する Outlook クイック スタートを完了します。

マニフェストを構成する

マニフェストを構成する手順は、クイック スタートで選択したマニフェストの種類によって異なります。

  1. 関数コマンドを設定する場合と同様に、"extensions.runtimes" プロパティを構成します。 詳細については、「 関数コマンドのランタイムを構成する」を参照してください。

  2. "extensions.ribbons.contexts" 配列で、項目としてを追加 mailRead します。 完了すると、配列は次のようになります。

    "contexts": [
        "mailRead"
    ],
    
  3. "extensions.ribbons.requirements.formFactors" 配列で、"mobile" を項目として追加します。 完了すると、配列は次のようになります。

    "formFactors": [
        "mobile",
        <!-- Typically there will be other form factors listed. -->
    ]
    
  4. "extensions" 配列の オブジェクトのプロパティとして、次の "autoRunEvents" 配列を追加します。

    "autoRunEvents": [
    
    ]
    
  5. "autoRunEvents" 配列に、次のようなオブジェクトを追加します。 このコードについては、次の点に注意してください。

    • "events" プロパティは、ハンドラーをイベントにマップします。
    • "events.type" は、 サポートされているイベントに記載されている型のいずれかである必要があります。
    • "events.actionId" の値は、「 イベント ハンドラーを実装する」で作成する関数の名前です。
    • "events" 配列には複数のオブジェクトを含めることができます。
      {
          "requirements": {
              "capabilities": [
                  {
                      "name": "Mailbox",
                      "minVersion": "1.10"
                  }
              ],
              "scopes": [
                  "mail"
              ]
          },
          "events": [
              {
                  "type": "newMessageComposeCreated",
                  "actionId": "onNewMessageComposeHandler"
              },
          ]
      }
    

ヒント

Outlook アドインのマニフェストの詳細については、「 Office アドイン マニフェスト 」および「 モバイル デバイス上の Outlook でのアドイン コマンドのサポートの追加」を参照してください。

イベント ハンドラを実装する

イベントが発生したときにアドインがタスクを OnNewMessageCompose 完了できるようにするには、JavaScript イベント ハンドラーを実装する必要があります。 このセクションでは、作成中の onNewMessageComposeHandler 新しいメッセージに署名を追加する関数を作成し、署名が追加されたことを通知するメッセージを表示します。

  1. 同じクイック スタート プロジェクトから ./src ディレクトリに移動し、 launchevent という名前の新しいフォルダーを作成します。

  2. ./src/launchevent フォルダーに、 という名前の新しいファイル launchevent.js作成します。

  3. 作成した launchevent.js ファイルを開き、次の JavaScript コードを追加します。

    /*
    * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
    * See LICENSE in the project root for license information.
    */
    
    // Add start-up logic code here, if any.
    Office.onReady();
    
    function onNewMessageComposeHandler(event) {
        const item = Office.context.mailbox.item;
        const signatureIcon = "iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAMAAAC7faEHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAzUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMFRskAAAAQdFJOUwAQIDBAUGBwgI+fr7/P3+8jGoKKAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABT0lEQVQ4T7XT2ZalIAwF0DAJhMH+/6+tJOQqot6X6joPiouNBo3w9/Hd6+hrYnUt6vhLcjEAJevVW0zJxABSlcunhERpjY+UKoNN5+ZgDGu2onNz0OngjP2FM1VdyBW1LtvGeYrBLs7U5I1PTXZt+zifcS3Icw2GcS3vxRY3Vn/iqx31hUyTnV515kdTfbaNhZLI30AceqDiIo4tyKEmJpKdP5M4um+nUwfDWxAXdzqMNKQ14jLdL5ntXzxcRF440mhS6yu882Kxa30RZcUIjTCJg7lscsR4VsMjfX9Q0Vuv/Wd3YosD1J4LuSRtaL7bzXGN1wx2cytUdncDuhA3fu6HPTiCvpQUIjZ3sCcHVbvLtbNTHlysx2w9/s27m9gEb+7CTri6hR1wcTf2gVf3wBRe3CMbcHYvTODkXhnD0+178K/pZ9+n/C1ru/2HAPwAo7YM1X4+tLMAAAAASUVORK5CYII=";
    
        // Get the sender's account information.
        item.from.getAsync((result) => {
            if (result.status === Office.AsyncResultStatus.Failed) {
                console.log(result.error.message);
                event.completed();
                return;
            }
    
            // Create a signature based on the sender's information.
            const name = result.value.displayName;
            const options = { asyncContext: name, isInline: true };
            item.addFileAttachmentFromBase64Async(signatureIcon, "signatureIcon.png", options, (result) => {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    console.log(result.error.message);
                    event.completed();
                    return;
                }
    
                // Add the created signature to the message.
                const signature = "<img src='cid:signatureIcon.png'>" + result.asyncContext;
                item.body.setSignatureAsync(signature, { coercionType: Office.CoercionType.Html }, (result) => {
                    if (result.status === Office.AsyncResultStatus.Failed) {
                        console.log(result.error.message);
                        event.completed();
                        return;
                    }
    
                    // Show a notification when the signature is added to the message.
                    // Important: Only the InformationalMessage type is supported in Outlook mobile at this time.
                    const notification = {
                        type: Office.MailboxEnums.ItemNotificationMessageType.InformationalMessage,
                        message: "Company signature added.",
                        icon: "none",
                        persistent: false                        
                    };
                    item.notificationMessages.addAsync("signature_notification", notification, (result) => {
                        if (result.status === Office.AsyncResultStatus.Failed) {
                            console.log(result.error.message);
                            event.completed();
                            return;
                        }
    
                        event.completed();
                    });
                });
            });
        });
    }
    
  4. 変更内容を保存します。

イベント処理 JavaScript ファイルへの参照を追加する

./src/commands/commands.html ファイルに、イベント ハンドラーを含む JavaScript ファイルへの参照があることを確認します。

  1. ./src/commands フォルダーに移動し、commands.htmlを開きます。

  2. 終了 ヘッド タグ (</head>) の直前に、イベント ハンドラーを含む JavaScript ファイルのスクリプト エントリを追加します。

    <script type="text/javascript" src="../launchevent/launchevent.js"></script>
    
  3. 変更を保存します。

アドインをテストして検証する

  1. ガイダンスに従って、 アドインをテストして検証します

  2. Outlook on Windows (クラシックまたは新規 (プレビュー))、Mac、または Web でアドインをサイドロードします。

  3. Android または iOS で Outlook を開きます。 デバイスで Outlook を既に開いている場合は、再起動します。

  4. 新しいメッセージをCreateします。 イベント ベースのアドインは、メッセージに署名を追加します。 モバイル デバイスに保存された署名がある場合は、作成したメッセージに簡単に表示されますが、すぐにアドインによって追加された署名に置き換えられます。

    Outlook モバイルで構成されているメッセージに追加されたサンプル署名。

動作と制限事項

Outlook モバイル用のイベント ベースのアドインを開発するときは、次の機能の動作と制限事項に注意してください。

  • 現時点では、 OnNewMessageCompose Outlook モバイルではイベントのみがサポートされています。 このイベントは、新しいメッセージ (返信、全員への返信、転送を含む) が作成されたときに発生します。 既存の下書きを編集してもイベントは OnNewMessageCompose 発生しません。
  • イベント ベースのアドインは実行時間が短く軽量であることが予想されるため、アドインはアクティブ化された時点から最大 60 秒間実行できます。 アドインがイベントの処理を完了したことを通知するには、イベント ハンドラーが event.completed メソッドを呼び出す必要があります。 アドイン操作は、ユーザーが作成ウィンドウを閉じるか、メッセージを送信したときにも終了します。
  • 一度に実行できるアドインは 1 つだけです。 ユーザーのアカウントに複数のイベント ベースのアドインがインストールされている場合、それらは順番に実行されます。
  • モバイル デバイスの Outlook アイコンを長押しし、[ 新しいメール ] を選択して新しいメッセージを作成すると、イベントベースのアドインがイベントの初期化と処理を完了するまでに数秒かかることがあります。
  • 構成中の新しいメッセージに変更が加えられない場合、イベント ベースのアドインが Office.context.mailbox.item.body.setSignatureAsync メソッドを使用して署名を追加した場合でも、下書きは保存されません。
  • 署名を管理するイベント ベースのアドインで、メッセージの下部から [返信 ] を選択すると、アドインによって署名がアクティブになり、メッセージに追加されます。 ただし、署名は現在のビューには表示されません。 追加された署名を含むメッセージを表示するには、作成ウィンドウを全画面表示に展開します。
  • アドインの機能を強化するために、後の要件セットからサポートされている API を作成モードで使用できます。 詳細については、「 サポートされるその他の API」を参照してください。

サポートされるその他の API

Outlook モバイルでは 、メールボックス要件セット 1.5 までの API がサポートされていますが、Outlook Mobile でイベント ベースのアドインの機能をさらに拡張するために、以降の要件セットからの追加 API が作成モードでサポートされるようになりました。

モバイル デバイス上の Outlook でサポートされる API の詳細については、「モバイル デバイス上の Outlook でサポートされる Outlook JavaScript API」を参照してください。

ユーザーにデプロイする

イベント ベースのアドインは、organizationの管理者がデプロイする必要があります。 Microsoft 365 管理センターを使用してアドインを展開する方法のガイダンスについては、「イベント ベースのアクティブ化のために Outlook アドインを構成する」の「ユーザーに展開する」セクションを参照してください。

関連項目