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


Автоматическое определение темы нового сообщения или встречи

Необходимо добавить обязательное заявление об отказе от ответственности во все сообщения? При использовании надстройки на основе событий содержимое автоматически добавляется в новые сообщения или встречи. Пользователи могут сосредоточиться на написании, а не на соответствии требованиям.

В следующих разделах описано, как разработать надстройку, обрабатывающую OnNewMessageCompose события и OnNewAppointmentOrganizer . К концу этого пошагового руководства у вас будет надстройка, которая автоматически задает тему новых сообщений и встреч.

Примечание.

События OnNewMessageCompose и OnNewAppointmentOrganizer были введены в наборе требований 1.10. Чтобы убедиться, что клиент Outlook поддерживает эти события, см . раздел Наборы требований, поддерживаемые серверами Exchange и клиентами Outlook.

Настройка среды

Завершите краткое руководство По созданию проекта надстройки с помощью генератора Yeoman для надстроек Office.

Настройка манифеста

Чтобы настроить манифест, выберите вкладку с типом манифеста, который вы используете.

  1. Откройте файл manifest.json .

  2. Добавьте следующий объект в массив extensions.runtimes. Обратите внимание на указанные ниже особенности этой разметки.

    • Для параметра minVersion набора требований почтового ящика настроено значение "1.10", так как это самая низкая версия набора требований, поддерживающая OnNewMessageCompose события и OnNewAppointmentOrganizer .

    • Для идентификатора среды выполнения задается описательное имя "autorun_runtime".

    • Свойство "code" имеет дочернее свойство page, для которого задано значение HTML-файла, и дочернее свойство script, для которого задается файл JavaScript. Вы создадите или измените эти файлы на последующих шагах. Office использует одно из этих значений в зависимости от платформы.

      • Office в Windows выполняет обработчики событий в среде выполнения, доступной только для JavaScript, которая загружает файл JavaScript напрямую.
      • Office на Mac и в Интернете, а также новый Outlook в Windows выполняют обработчики в среде выполнения браузера, которая загружает HTML-файл. Этот файл, в свою очередь, содержит <script> тег, который загружает файл JavaScript.

      Дополнительные сведения см. в разделе Среды выполнения в надстройках Office.

    • Свойство "время существования" имеет значение "short", что означает, что среда выполнения запускается при активации одного из событий и завершает работу по завершении обработчика. (В некоторых редких случаях среда выполнения завершает работу до завершения обработчика. См . раздел Среды выполнения в надстройках Office.)

    • Существует два типа "действий", которые могут выполняться в среде выполнения. Вы создадите функции, соответствующие этим действиям, на следующем шаге.

     {
        "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. Добавьте следующий массив autoRunEvents в качестве свойства объекта в массиве extensions.

    "autoRunEvents": [
    
    ]
    
  4. Добавьте следующий объект в массив autoRunEvents. Свойство events сопоставляет обработчики с событиями, как описано в таблице ранее в этой статье. Имена обработчиков должны совпадать с именами, используемыми в свойствах id объектов в массиве actions на предыдущем шаге.

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

Совет

Реализация обработки событий

  1. В том же проекте быстрого запуска создайте папку launchevent в каталоге ./src .

  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 Outlook, remember to map the event handler name specified in the manifest to its JavaScript counterpart.
    Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler);
    Office.actions.associate("onNewAppointmentComposeHandler", onNewAppointmentComposeHandler);
    
  4. Сохраните изменения.

Примечание.

При разработке надстройки на основе событий для классической версии Outlook в Windows необходимо учитывать некоторые ограничения. Дополнительные сведения см. в статье Поведение активации на основе событий и ограничения.

Обновление HTML-файла команд

  1. В папке ./src/commands откройте commands.html.

  2. Непосредственно перед закрывающим тегом head (</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локальный веб-сервер запустится (если он еще не запущен), и надстройка будет загружена неопубликованно.

    npm run build
    
    npm start
    

    Примечание.

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

  2. В Outlook в Интернете или в новом Outlook в Windows создайте новое сообщение.

    Окно сообщения в Outlook в Интернете с темой, заданной в compose.

  3. В Outlook в новом пользовательском интерфейсе Mac создайте новое сообщение.

    Окно сообщения в Outlook в новом пользовательском интерфейсе Mac с темой, заданной в compose.

  4. В классической версии Outlook в Windows создайте новое сообщение.

    Окно сообщения в классической версии Outlook для Windows с заданным темой при создании.

  5. Если вы хотите остановить локальный веб-сервер и удалить надстройку, следуйте применимым инструкциям:

    • Чтобы остановить сервер, выполните следующую команду. Если вы использовали npm start, следующая команда также должна удалить надстройку.

      npm stop
      
    • Если вы вручную загрузили неопубликованную надстройку, см. статью Удаление неопубликоченной надстройки.

Дальнейшие действия

Дополнительные сведения об активации на основе событий и других событиях, которые можно реализовать в надстройке, см. в статье Настройка надстройки Outlook для активации на основе событий.

См. также