新しいメッセージまたは予定の件名を自動的に設定する

すべてのメッセージに必要な免責事項を追加する必要がありますか? イベント ベースのアドインでは、コンテンツが新しいメッセージまたは予定に自動的に追加されます。 ユーザーは、コンプライアンスではなく、書き込みに集中できます。

以降のセクションでは、 イベントと OnNewAppointmentOrganizer イベントを処理OnNewMessageComposeするアドインを開発する方法について説明します。 このチュートリアルの終わりまでに、作成される新しいメッセージと予定の件名を自動的に設定するアドインが用意されています。

注:

イベントと OnNewAppointmentOrganizer イベントはOnNewMessageCompose、要件セット 1.10 で導入されました。 Outlook クライアントでこれらのイベントがサポートされていることを確認するには、「 Exchange サーバーと Outlook クライアントでサポートされている要件セット」を参照してください。

環境を設定する

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

マニフェストを構成する

マニフェストを構成するには、使用しているマニフェストの種類のタブを選択します。

  1. manifest.json ファイルを開きます。

  2. "extensions.runtimes" 配列に次のオブジェクトを追加します。 このマークアップについて、次の点に注意してください。

    • メールボックス要件セットの "minVersion" は、イベントと OnNewAppointmentOrganizer イベントをサポートOnNewMessageComposeする要件セットの最小バージョンであるため、"1.10" に構成されます。

    • ランタイムの "id" は、わかりやすい名前 "autorun_runtime" に設定されます。

    • "code" プロパティには、HTML ファイルに設定された子 "page" プロパティと、JavaScript ファイルに設定された子 "script" プロパティがあります。 これらのファイルは、後の手順で作成または編集します。 Office では、プラットフォームに応じてこれらの値のいずれかを使用します。

      • Windows 上の Office では、JavaScript 専用ランタイムでイベント ハンドラーが実行され、JavaScript ファイルが直接読み込まれます。
      • Office on Mac と Web、および 新しい Outlook on Windows (プレビュー) では、ブラウザー ランタイムでハンドラーが実行され、HTML ファイルが読み込まれます。 そのファイルには、JavaScript ファイルを <script> 読み込むタグが含まれています。

      詳細については、「 Office アドインのランタイム」を参照してください。

    • "lifetime" プロパティは "short" に設定されています。これは、いずれかのイベントがトリガーされたときにランタイムが起動し、ハンドラーが完了するとシャットダウンすることを意味します。 (まれに、ハンドラーが完了する前にランタイムがシャットダウンする場合があります。 「Office アドインのランタイム」を参照してください)。

    • ランタイムで実行できる "アクション" には 2 種類あります。 これらのアクションに対応する関数は、後の手順で作成します。

     {
        "requirements": {
            "capabilities": [
                {
                    "name": "Mailbox",
                    "minVersion": "1.10"
                }
            ]
        },
        "id": "autorun_runtime",
        "type": "general",
        "code": {
            "page": "https://localhost:3000/commands.html",
            "script": "https://localhost:3000/launchevent.js"
        },
        "lifetime": "short",
        "actions": [
            {
                "id": "onNewMessageComposeHandler",
                "type": "executeFunction",
                "displayName": "onNewMessageComposeHandler"
            },
            {
                "id": "onNewAppointmentComposeHandler",
                "type": "executeFunction",
                "displayName": "onNewAppointmentComposeHandler"
            }
        ]
    }
    
  3. "extensions" 配列の オブジェクトのプロパティとして、次の "autoRunEvents" 配列を追加します。

    "autoRunEvents": [
    
    ]
    
  4. "autoRunEvents" 配列に次のオブジェクトを追加します。 "events" プロパティは、この記事の前の表で説明したようにハンドラーをイベントにマップします。 ハンドラー名は、前の手順の "actions" 配列内のオブジェクトの "id" プロパティで使用されているものと一致する必要があります。

      {
          "requirements": {
              "capabilities": [
                  {
                      "name": "Mailbox",
                      "minVersion": "1.10"
                  }
              ],
              "scopes": [
                  "mail"
              ]
          },
          "events": [
              {
                  "type": "newMessageComposeCreated",
                  "actionId": "onNewMessageComposeHandler"
              },
              {
                  "type": "newAppointmentOrganizerCreated",
                  "actionId": "onNewAppointmentComposeHandler"
              }
          ]
      }
    

ヒント

イベント処理を実装する

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

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

  3. コード エディターで ./src/launchevent/launchevent.js ファイルを開き、次の JavaScript コードを追加します。

    /*
    * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
    * See LICENSE in the project root for license information.
    */
    
    function onNewMessageComposeHandler(event) {
      setSubject(event);
    }
    function onNewAppointmentComposeHandler(event) {
      setSubject(event);
    }
    function setSubject(event) {
      Office.context.mailbox.item.subject.setAsync(
        "Set by an event-based add-in!",
        {
          "asyncContext": event
        },
        function (asyncResult) {
          // Handle success or error.
          if (asyncResult.status !== Office.AsyncResultStatus.Succeeded) {
            console.error("Failed to set subject: " + JSON.stringify(asyncResult.error));
          }
    
          // Call event.completed() to signal to the Outlook client that the add-in has completed processing the event.
          asyncResult.asyncContext.completed();
        });
    }
    
    // IMPORTANT: To ensure your add-in is supported in the Outlook client on Windows, remember to map the event handler name specified in the manifest to its JavaScript counterpart.
    if (Office.context.platform === Office.PlatformType.PC || Office.context.platform == null) {
      Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler);
      Office.actions.associate("onNewAppointmentComposeHandler", onNewAppointmentComposeHandler);
    }
    
  4. 変更内容を保存します。

注:

Outlook on Windows 用のイベント ベースのアドインを開発する場合は、いくつかの制限事項に注意する必要があります。 詳細については、「 イベント ベースのアクティブ化の動作と制限事項」を参照してください。

コマンド HTML ファイルを更新する

  1. ./src/commands フォルダーで、 commands.htmlを開きます。

  2. 終了 ヘッド タグ (</head>) の直前に、イベント処理 JavaScript コードを含めるスクリプト エントリを追加します。

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

Webpackの機能設定を更新する

  1. プロジェクトのルート ディレクトリにある webpack.config.js ファイルを開き、次の手順を実行します。

  2. オブジェクト内の plugins 配列を config 見つけて、配列の先頭にこの新しいオブジェクトを追加します。

    new CopyWebpackPlugin({
      patterns: [
        {
          from: "./src/launchevent/launchevent.js",
          to: "launchevent.js",
        },
      ],
    }),
    
  3. 変更内容を保存します。

試してみる

  1. プロジェクトのルート ディレクトリで次のコマンドを実行します。 を実行 npm startすると、ローカル Web サーバーが起動し (まだ実行されていない場合)、アドインがサイドロードされます。

    npm run build
    
    npm start
    

    注:

    アドインが自動的にサイドロードされなかった場合は、「 Outlook アドインをサイドロードしてテストする 」の手順に従って、Outlook でアドインを手動でサイドロードします。

  2. Outlook on the webまたは新しい Outlook on Windows (プレビュー) で、新しいメッセージを作成します。

    compose に件名が設定されたOutlook on the webのメッセージ ウィンドウ。

  3. 新しい Mac UI の Outlook で、新しいメッセージを作成します。

    新しい Mac UI 上の Outlook のメッセージ ウィンドウ。件名は compose に設定されています。

  4. Outlook on Windows で、新しいメッセージを作成します。

    Outlook on Windows のメッセージ ウィンドウ。件名が compose に設定されています。

次の手順

イベント ベースのアクティブ化と、アドインに実装できるその他のイベントの詳細については、「 イベントベースのアクティブ化のために Outlook アドインを構成する」を参照してください。

関連項目