Реализация интегрированной надстройки отчетов о нежелательной почты
С ростом числа незапрошенных сообщений электронной почты безопасность находится на переднем крае использования надстроек. В настоящее время партнерские надстройки, сообщая о спаме, добавляются на ленту Outlook, но обычно они отображаются в конце ленты или в меню переполнения. Это затрудняет поиск надстройки, чтобы сообщить о нежелательных сообщениях электронной почты. В дополнение к настройке обработки сообщений при их отправке разработчикам также необходимо выполнить дополнительные задачи, чтобы показать пользователю диалоговые окна обработки или дополнительные сведения.
Встроенная функция создания отчетов о спаме упрощает задачу разработки отдельных компонентов надстроек с нуля. Что еще важнее, надстройка отображается в видном месте на ленте Outlook, что упрощает пользователям ее поиск и отправку сообщений нежелательной почты. Реализуйте эту функцию в надстройке, чтобы:
- Улучшение отслеживания незапрошенных сообщений.
- Предоставление пользователям более качественных рекомендаций о том, как сообщать о подозрительных сообщениях.
- Позволить центру управления безопасностью организации (SOC) или ИТ-администраторам легко выполнять имитацию спама и фишинга в образовательных целях.
Примечание.
Интегрированные отчеты о нежелательной почте появились в наборе обязательных для почтовых ящиков 1.14. Сведения о поддержке клиентов для этой функции см. в разделе Поддерживаемые клиенты.
Поддерживаемые клиенты
В следующей таблице показано, какие клиенты Outlook поддерживают встроенную функцию создания отчетов о спаме.
Клиент | Состояние |
---|---|
Outlook в Интернете | Поддерживается |
новый Outlook в Windows | Поддерживается |
классический Outlook в Windows Версия 2404 (сборка 17530.15000) |
Поддерживается |
Outlook для Mac Версия 16.81 (23121700) или более поздняя |
Предварительная версия (см . раздел Предварительный просмотр встроенной функции создания отчетов о нежелательной почте в Outlook на Mac) |
Outlook для Android | Недоступно |
Outlook для iOS | Недоступно |
Предварительная версия встроенной функции создания отчетов о нежелательной почте в Outlook на Mac
Чтобы просмотреть встроенную функцию отчетов о спаме в Outlook на Mac, необходимо установить версию 16.81.1217.0 или более позднюю. Затем присоединитесь к программе предварительной оценки Microsoft 365 и выберите параметр Канал бета-версии , чтобы получить доступ к бета-сборкам Office.
Настройка среды
Совет
Чтобы немедленно опробовать готовое решение для создания отчетов о спаме, см. пример сообщения о спаме или фишинге в Outlook .
Выполните краткое руководство по Outlook, в котором создается проект надстройки с генератором Yeoman для надстроек Office.
Настройка манифеста
Чтобы реализовать встроенную функцию отчетов о спаме в надстройке, необходимо настроить в манифесте следующее.
Среда выполнения, используемая надстройкой. В классической версии Outlook в Windows надстройка, сообщающая о спаме, выполняется в среде выполнения, доступной только для JavaScript. В Outlook в Интернете и на Mac, а также в новом Outlook для Windows надстройка со сведениями о спаме запускается в среде выполнения браузера. Дополнительные сведения см. в разделе Среды выполнения в надстройках Office.
Кнопка надстройки, сообщающей о спаме, которая всегда отображается на видном месте на ленте Outlook. Ниже приведен пример того, как кнопка надстройки, сообщающей о спаме, отображается на ленте классического клиента Outlook в Windows. Пользовательский интерфейс ленты может отличаться в зависимости от платформы, на которую работает клиент Outlook пользователя.
Диалоговое окно предварительной обработки. Это диалоговое окно отображается пользователю при нажатии кнопки надстройки. В этом диалоговом окне пользователь может предоставить дополнительные сведения о сообщении, которое он сообщает. Когда пользователь выбирает отчет в диалоговом окне, событие SpamReporting активируется, а затем обрабатывается обработчиком событий JavaScript. Ниже приведен пример диалогового окна предварительной обработки в Outlook в Windows. Обратите внимание, что внешний вид диалогового окна может отличаться в зависимости от платформы, на которую работает клиент Outlook пользователя.
Выберите вкладку для типа манифеста, который вы используете.
Примечание.
Реализация интегрированных отчетов о спаме с унифицированным манифестом для Microsoft 365 доступна в общедоступной предварительной версии для разработчиков. В настоящее время его можно использовать только в классической версии Outlook в Windows. Его не следует использовать в рабочих надстройках. Мы приглашаем вас опробовать его в средах тестирования или разработки. Дополнительные сведения см. в статье Схема манифеста общедоступной предварительной версии приложения для разработчиков.
В предпочитаемом редакторе кода откройте созданный проект надстройки.
Откройте файл manifest.json .
Добавьте следующий объект в массив extensions.runtimes. Обратите внимание на следующие особенности этой разметки.
- Для параметра minVersion набора обязательных для почтового ящика настроено значение "1.14". Это самая низкая версия набора требований, которая поддерживает встроенную функцию создания отчетов о нежелательной почте.
- Для идентификатора среды выполнения задается уникальное описательное имя "spam_reporting_runtime".
- Свойство code имеет дочернее свойство page, для которого задано значение HTML-файла, и дочернее свойство script, задается в файл JavaScript. Вы создадите или измените эти файлы на последующих шагах.
- Свойство "время существования" имеет значение "short". Это означает, что среда выполнения запускается при возникновении
SpamReporting
события и завершает работу по завершении обработчика событий. - Объект actions указывает функцию обработчика событий, которая выполняется в среде выполнения. Вы создадите эту функцию на следующем шаге.
{ "requirements": { "capabilities": [ { "name": "Mailbox", "minVersion": "1.14" } ] }, "id": "spam_reporting_runtime", "type": "general", "code": { "page": "https://localhost:3000/commands.html", "script": "https://localhost:3000/spamreporting.js" }, "lifetime": "short", "actions": [ { "id": "onSpamReport", "type": "executeFunction" } ] },
Добавьте следующий объект в массив extensions.ribbons. Обратите внимание на следующие особенности этой разметки.
- Массив contexts содержит строку spamReportingOverride. Это предотвращает появление кнопки надстройки в конце ленты или в разделе переполнения.
- Массив fixedControls содержит объект, который настраивает внешний вид и функциональность кнопки надстройки на ленте. Имя обработчика событий, указанное в свойстве actionId, должно соответствовать значению, используемому в свойстве id объекта в массиве actions. Хотя свойство "enabled" должно быть указано в массиве, его значение не влияет на функциональность надстройки, сообщающей о спаме.
- Объект spamPreProcessingDialog указывает сведения и параметры, отображаемые в диалоговом окне предварительной обработки. Хотя для диалогового окна необходимо указать "заголовок" и "описание", при необходимости можно настроить следующие свойства.
- Объект spamReportingOptions. Он предоставляет список с несколькими вариантами выбора не более пяти вариантов. Это помогает пользователю определить тип сообщения, которое он сообщает.
- Свойство spamFreeTextSectionTitle. Оно предоставляет пользователю текстовое поле для добавления дополнительных сведений о сообщении, которое он сообщает.
- Объект spamMoreInfo. Он содержит ссылку в диалоговом окне для предоставления пользователю информационных ресурсов.
{ "contexts": [ "spamReportingOverride" ], "fixedControls": [ { "id": "spamReportingButton", "type": "button", "label": "Report Spam Message", "enabled": false, "icons": [ { "size": 16, "url": "https://localhost:3000/assets/icon-16.png" }, { "size": 32, "url": "https://localhost:3000/assets/icon-32.png" }, { "size": 80, "url": "https://localhost:3000/assets/icon-80.png" } ], "supertip": { "title": "Report Spam Message", "description": "Report an unsolicited message." }, "actionId": "onSpamReport" } ], "spamPreProcessingDialog": { "title": "Report Spam Message", "description": "Thank you for reporting this message.", "spamReportingOptions": { "title": "Why are you reporting this email?", "options": [ "Received spam email.", "Received a phishing email.", "I'm not sure this is a legitimate email." ] }, "spamFreeTextSectionTitle": "Provide additional information, if any:", "spamMoreInfo": { "text": "Reporting unsolicited messages", "url": "https://www.contoso.com/spamreporting" } } },
Сохраните изменения.
Совет
Дополнительные сведения о манифестах надстроек Outlook см. в статье Манифест надстроек Office.
Реализация обработчика событий
Когда надстройка используется для отправки сообщения, она создает SpamReporting
событие, которое затем обрабатывается обработчиком событий в файле JavaScript надстройки. Чтобы сопоставить имя обработчика событий, указанного в манифесте, с его аналогом JavaScript, необходимо вызвать Office.actions.associate в коде.
В проекте надстройки перейдите в каталог ./src . Затем создайте папку с именем spamreporting.
В папке ./src/spamreporting создайте файл с именемspamreporting.js.
Откройте только что созданный файлspamreporting.js и добавьте следующий код JavaScript.
// Handles the SpamReporting event to process a reported message. function onSpamReport(event) { // TODO - Send a copy of the reported message. // TODO - Get the user's responses. // TODO - Signal that the spam-reporting event has completed processing. } // 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("onSpamReport", onSpamReport);
Сохраните изменения.
Переадресация копии сообщения и получение ответов диалога предварительной обработки
Обработчик событий отвечает за обработку сообщаемого сообщения. Его можно настроить для пересылки информации, например копии сообщения или параметров, выбранных пользователем в диалоговом окне предварительной обработки, во внутреннюю систему для дальнейшего изучения.
Чтобы эффективно отправить копию сообщения, вызовите метод getAsFileAsync в обработчике событий. При этом будет получено сообщение в формате EML в кодировке Base64, которое затем можно перенаправить во внутреннюю систему.
Если необходимо отслеживать ответы пользователя на параметры и текстовое поле в диалоговом окне предварительной обработки, извлеките options
значения и freeText
из SpamReporting
объекта события. Дополнительные сведения об этих свойствах см. в статье Office.SpamReportingEventArgs.
Ниже приведен пример обработчика событий, сообщающего о спаме getAsFileAsync
, который вызывает метод и получает ответы пользователя из SpamReporting
объекта события.
В файлеspamreporting.js замените его содержимое следующим кодом.
// Handles the SpamReporting event to process a reported message. function onSpamReport(event) { // Get the Base64-encoded EML format of a reported message. Office.context.mailbox.item.getAsFileAsync({ asyncContext: event }, (asyncResult) => { if (asyncResult.status === Office.AsyncResultStatus.Failed) { console.log(`Error encountered during message processing: ${asyncResult.error.message}`); return; } // Get the user's responses to the options and text box in the preprocessing dialog. const spamReportingEvent = asyncResult.asyncContext; const reportedOptions = spamReportingEvent.options; const additionalInfo = spamReportingEvent.freeText; // Run additional processing operations here. // TODO - Signal that the spam-reporting event has completed processing. }); } // 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("onSpamReport", onSpamReport);
Сохраните изменения.
Примечание.
Чтобы настроить единый вход (SSO) или общий доступ к ресурсам между источниками (CORS) в надстройке, сообщающей о спаме, необходимо добавить надстройку и файл JavaScript в хорошо известный URI. Инструкции по настройке этого ресурса см. в статье Использование единого входа (SSO) или совместного доступа к ресурсам между источниками (CORS) в надстройке Outlook на основе событий или рассылки нежелательной почты.
Сигнал, когда событие было обработано
Когда обработчик событий завершит обработку сообщения, он должен вызвать метод event.completed . Помимо информирования надстройки о том, что событие, сообщающее о спаме, было обработано, event.completed
также можно использовать для настройки диалогового окна постобработки для отображения пользователю или выполнения дополнительных операций с сообщением, таких как удаление его из папки "Входящие". Список свойств, которые можно включить в объект JSON для передачи в качестве параметра методу, см. в event.completed
разделе Office.SpamReportingEventCompletedOptions.
Примечание.
Код, добавленный после event.completed
вызова, не гарантируется для выполнения.
В файлеspamreporting.js замените его содержимое следующим кодом.
// Handles the SpamReporting event to process a reported message. function onSpamReport(event) { // Get the Base64-encoded EML format of a reported message. Office.context.mailbox.item.getAsFileAsync({ asyncContext: event }, (asyncResult) => { if (asyncResult.status === Office.AsyncResultStatus.Failed) { console.log(`Error encountered during message processing: ${asyncResult.error.message}`); return; } // Get the user's responses to the options and text box in the preprocessing dialog. const spamReportingEvent = asyncResult.asyncContext; const reportedOptions = spamReportingEvent.options; const additionalInfo = spamReportingEvent.freeText; // Run additional processing operations here. /** * Signals that the spam-reporting event has completed processing. * It then moves the reported message to the Junk Email folder of the mailbox, then * shows a post-processing dialog to the user. If an error occurs while the message * is being processed, the `onErrorDeleteItem` property determines whether the message * will be deleted. */ const event = asyncResult.asyncContext; event.completed({ onErrorDeleteItem: true, moveItemTo: Office.MailboxEnums.MoveSpamItemTo.JunkFolder, showPostProcessingDialog: { title: "Contoso Spam Reporting", description: "Thank you for reporting this message.", }, }); }); } // 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("onSpamReport", onSpamReport);
Примечание.
Если вы используете классический Outlook для Windows версии 2308 (сборка 16724.10000) или более поздней версии, Outlook для Mac, Outlook в Интернете или новый Outlook в Windows, необходимо использовать
moveItemTo
свойство вevent.completed
вызове, чтобы указать папку, в которую передается сообщение после его обработки надстройкой. В более ранних версиях Outlook на платформе Windows, поддерживающей встроенную функцию создания отчетов о спамеpostProcessingAction
, необходимо использовать свойство .Сохраните изменения.
Ниже приведен пример диалогового окна постобработки, показанного пользователю после завершения обработки сообщаемого сообщения в Outlook в Windows. Обратите внимание, что внешний вид диалогового окна может отличаться в зависимости от платформы, на которую работает клиент Outlook пользователя.
Совет
При разработке надстройки со сведениями о спаме, которая будет выполняться в Outlook в Windows, помните следующее.
- Импорт в настоящее время не поддерживается в файле JavaScript, который содержит код для обработки события со спамом.
- Код, включенный
Office.onReady()
в функции иOffice.initialize
, не будет выполняться. Вместо этого в обработчики событий необходимо добавить любую логику запуска надстроек, например проверку версии Outlook пользователя.
Обновление HTML-файла команд
В папке ./src/commands откройте commands.html.
Непосредственно перед закрывающим тегом заголовка (
</head>
) добавьте следующую запись скрипта .<script type="text/javascript" src="../spamreporting/spamreporting.js"></script>
Примечание.
Встроенная функция создания отчетов о спаме в настоящее время доступна в предварительной версии в Outlook на Mac. При тестировании функции в этом клиенте необходимо включить ссылку на предварительную версию API JavaScript для Office в файлcommands.html .
<script type="text/javascript" src="https://appsforoffice.microsoft.com/lib/beta/hosted/office.js"></script> <script type="text/javascript" src="../spamreporting/spamreporting.js"></script>
Сохраните изменения.
Обновление параметров конфигурации webpack
В корневом каталоге проекта надстройки откройте файлwebpack.config.js .
plugins
Найдите массив в объектеconfig
и добавьте этот новый объект в начало массива.new CopyWebpackPlugin({ patterns: [ { from: "./src/spamreporting/spamreporting.js", to: "spamreporting.js", }, ], }),
Сохраните изменения.
Тестирование и проверка надстройки
- Загрузите неопубликованную надстройку в поддерживаемом клиенте Outlook.
- Выберите сообщение из папки "Входящие", а затем нажмите кнопку надстройки на ленте.
- В диалоговом окне предварительной обработки выберите причину для создания сообщения и добавьте сведения о сообщении, если это настроено. Затем выберите Отчет.
- (Необязательно) В диалоговом окне постобработки нажмите кнопку ОК.
Обзор поведения и ограничений функций
При разработке и тестировании встроенной функции создания отчетов о спаме в надстройке учитывайте ее характеристики и ограничения.
В Outlook в Интернете и в Windows (новая и классическая) встроенная надстройка со сведениями о спаме заменяет встроенную кнопку "Отчет" на ленте Outlook. Если установлено несколько надстроек со сведениями о нежелательной почте, все они будут отображаться в разделе Отчет на ленте.
Надстройка со сведениями о спаме может работать не более пяти минут после активации. Любая обработка, которая выполняется за пять минут, приведет к истечении времени ожидания надстройки. Если время ожидания надстройки истекает, пользователю будет показано диалоговое окно с уведомлением об этом.
В классической версии Outlook для Windows надстройка отчетов о спаме может использоваться для отправки сообщения, даже если область чтения клиента Outlook отключена. В Outlook в Интернете, на Компьютере Mac и в новом Outlook в Windows надстройку со сведениями о нежелательной почте можно использовать, если включена область чтения или сообщение, о которой нужно сообщить, открыто в другом окне.
Одновременно можно сообщить только одно сообщение. Если выбрать несколько сообщений для отчета, кнопка надстройки со сведениями о нежелательной почте станет недоступной.
В классической версии Outlook в Windows одновременно может обрабатываться только одно сообщение. Если пользователь пытается сообщить о другом сообщении во время обработки предыдущего сообщения, отобразится диалоговое окно с уведомлением об этом.
Это не относится к Outlook в Интернете или mac, а также к новым Outlook в Windows. В этих клиентах Outlook пользователь может сообщить о сообщении из области чтения и одновременно сообщать о каждом сообщении, открытом в отдельном окне.
Надстройка по-прежнему может обработать сообщение, даже если пользователь переходит от выбранного сообщения. В Outlook для Mac это поддерживается только в том случае, если пользователь сообщает сообщение, когда оно открыто в отдельном окне. Если пользователь сообщает о сообщении при просмотре его из области чтения, а затем удаляется от него, процесс создания отчетов завершается.
Кнопки, отображаемые в диалоговых окнах предварительной и последующей обработки, не настраивается. Кроме того, невозможно изменить текст и кнопки в диалоговых окнах времени ожидания и текущих отчетов.
Интегрированные функции создания отчетов о нежелательной почте и активации на основе событий должны использовать одну и ту же среду выполнения. Несколько сред выполнения в настоящее время не поддерживаются в Outlook. Дополнительные сведения о средах выполнения см. в статье Среды выполнения в надстройках Office.
Надстройка со сведениями о спаме реализует только команды функций. Не удается назначить команду области задач кнопке сообщения о нежелательной почте на ленте. Если вы хотите реализовать область задач в надстройке, необходимо настроить ее в манифесте следующим образом:
-
Манифест только надстройки: включите элемент Action в манифест и задайте для его
xsi:type
атрибута значениеShowTaskpane
. - Унифицированный манифест для Microsoft 365: настройка объекта области задач в массивах extensions.runtimes и extensions.ribbons. Инструкции см. в разделе "Добавление команды области задач" статьи Создание команд надстроек с помощью унифицированного манифеста для Microsoft 365.
Обратите внимание, что на ленту будет добавлена отдельная кнопка для активации области задач, но она не будет отображаться в выделенной области отчетов о спаме на ленте.
-
Манифест только надстройки: включите элемент Action в манифест и задайте для его
Устранение неполадок с надстройкой
При разработке надстройки, сообщающей о спаме, может потребоваться устранить неполадки, например, если надстройка не загружается. Инструкции по устранению неполадок надстройки со сведениями о спаме см. в статье Устранение неполадок надстроек на основе событий и отчетов о нежелательной почте.
См. также
- Манифест надстроек Office
- Среды выполнения в надстройках Office
- Устранение неполадок надстроек на основе событий и отчетов о спаме
- Точка расширения ReportPhishingCommandSurface
- Office.MessageRead.getAsFileAsync
- Office.MailboxEnums.MoveSpamItemTo
- Office.SpamReportingEventArgs
- Office.SpamReportingEventCompletedOptions
Office Add-ins