Automatisches Aktualisieren Ihrer Signatur beim Wechseln zwischen Exchange-Konten
Das Anwenden der richtigen Signatur auf Nachrichten bei Verwendung mehrerer Exchange-Konten wird jetzt durch das Hinzufügen der OnMessageFromChanged
- und OnAppointmentFromChanged
-Ereignisse zum ereignisbasierten Aktivierungsfeature vereinfacht. Das OnMessageFromChanged
Ereignis tritt auf, wenn das Konto im Feld Von einer nachricht, die zusammengestellt wird, geändert wird, während das OnAppointmentFromChanged
Ereignis auftritt, wenn der Organisator einer Besprechung geändert wird, die zusammengestellt wird. Diese Ereignisse erweitern die Funktionen von Signatur-Add-Ins und ermöglichen folgendes:
- Bieten Sie Benutzern den Komfort, benutzerdefinierte Signaturen für jedes ihrer Konten anzuwenden.
- Ermöglichen Sie Postfachdelegaten, ausgehende Nachrichten und Besprechungsanfragen aus mehreren Postfächern genauer und effizienter zu verwalten.
- Stellen Sie sicher, dass die Nachrichten und Termine der Benutzer den Kommunikations- und Marketingrichtlinien ihrer organization entsprechen.
In den folgenden Abschnitten erfahren Sie, wie Sie ein ereignisbasiertes Add-In entwickeln, das das Ereignis behandelt, um die OnMessageFromChanged
Signatur einer Nachricht automatisch zu aktualisieren, wenn das E-Mail-Konto im Feld Von geändert wird.
Hinweis
Die OnMessageFromChanged
Ereignisse und OnAppointmentFromChanged
wurden in Anforderungssatz 1.13 eingeführt. Informationen zur Clientunterstützung für diese Ereignisse finden Sie unter Unterstützte Clients und Plattformen.
Unterstützte Clients und Plattformen
In den folgenden Tabellen sind Client-Server-Kombinationen aufgeführt, die die OnMessageFromChanged
Ereignisse und OnAppointmentFromChanged
unterstützen. Wählen Sie die Registerkarte für das entsprechende Ereignis aus.
Client | Exchange Online: | Exchange 2019 lokal (kumulatives Update 12 oder höher) | Exchange 2016 lokal (kumulatives Update 22 oder höher) |
---|---|---|---|
Webbrowser (moderne Benutzeroberfläche) neues Outlook unter Windows |
Unterstützt | – | Nicht zutreffend |
Windows (klassisch) Version 2304 (Build 16327.20248) oder höher |
Unterstützt | Unterstützt | Unterstützt |
Mac Version 16.77 (23081600) oder höher |
Unterstützt | – | Nicht zutreffend |
iOS | Nicht zutreffend | Nicht zutreffend | Nicht zutreffend |
Android | Nicht zutreffend | Nicht zutreffend | Nicht zutreffend |
Voraussetzungen
Zum Testen der exemplarischen Vorgehensweise müssen Sie über mindestens zwei Exchange-Konten verfügen.
Einrichten der Umgebung
Schließen Sie den Outlook-Schnellstart ab, der ein Add-In-Projekt mit dem Yeoman-Generator für Office-Add-Ins erstellt.
Konfigurieren des Manifests
Öffnen Sie die manifest.json Datei.
Fügen Sie dem Array "extensions.runtimes" das folgende -Objekt hinzu. Beachten Sie Folgendes zu diesem Markup.
Die "minVersion" des Postfachanforderungssatzes wird als "1.13" konfiguriert, da dies die niedrigste Version des Anforderungssatzes ist, die das
OnMessageFromChanged
Ereignis unterstützt. Weitere Informationen finden Sie in der Tabelle "Unterstützte Ereignisse" unter Konfigurieren Ihres Outlook-Add-Ins für die ereignisbasierte Aktivierung.Die "ID" der Laufzeit wird auf einen beschreibenden Namen festgelegt, "autorun_runtime".
Die Eigenschaft "code" verfügt über eine untergeordnete "page"-Eigenschaft, die auf eine HTML-Datei und eine untergeordnete "script"-Eigenschaft auf eine JavaScript-Datei festgelegt ist. Sie erstellen oder bearbeiten diese Dateien in späteren Schritten. Office verwendet je nach Plattform einen dieser Werte.
- Das klassische Outlook unter Windows führt den Ereignishandler in einer reinen JavaScript-Runtime aus, die eine JavaScript-Datei direkt lädt.
- Outlook im Web und unter Mac und outlook unter Windows führen den Handler in einer Browserruntime aus, die eine HTML-Datei lädt. Die HTML-Datei enthält ein
<script>
Tag, das dann die JavaScript-Datei lädt.
Weitere Informationen finden Sie unter Runtimes in Office-Add-Ins.
Die Eigenschaft "lifetime" ist auf "short" festgelegt. Dies bedeutet, dass die Runtime gestartet wird, wenn das Ereignis auftritt, und nach Abschluss des Handlers heruntergefahren wird.
Es gibt "Aktionen", um Handler für die
OnMessageFromChanged
Ereignisse undOnNewMessageCompose
auszuführen. Sie erstellen die Handler in einem späteren Schritt.
{ "requirements": { "capabilities": [ { "name": "Mailbox", "minVersion": "1.13" } ] }, "id": "autorun_runtime", "type": "general", "code": { "page": "https://localhost:3000/commands.html", "script": "https://localhost:3000/launchevent.js" }, "lifetime": "short", "actions": [ { "id": "onMessageFromChangedHandler", "type": "executeFunction", "displayName": "onMessageFromChangedHandler" }, { "id": "onNewMessageComposeHandler", "type": "executeFunction", "displayName": "onNewMessageComposeHandler" } ] }
Fügen Sie ein "autoRunEvents"-Array als Eigenschaft des Objekts im Array "extensions" hinzu. Das Array "autoRunEvents" enthält ein -Objekt mit den folgenden Schlüsseleigenschaften.
- Die Eigenschaft "events" weist den
OnMessageFromChanged
Ereignissen undOnNewMessageCompose
Handler zu. Informationen zu Ereignisnamen, die im einheitlichen Manifest verwendet werden, finden Sie in der Tabelle "Unterstützte Ereignisse" unter Konfigurieren Ihres Outlook-Add-Ins für die ereignisbasierte Aktivierung. - Der in "actionId" angegebene Funktionsname muss mit der Eigenschaft "id" des entsprechenden Objekts im zuvor konfigurierten Array "actions" übereinstimmen.
"autoRunEvents": [ { "requirements": { "capabilities": [ { "name": "Mailbox", "minVersion": "1.13" } ], "scopes": [ "mail" ] }, "events": [ { "type": "messageFromChanged", "actionId": "onMessageFromChangedHandler" }, { "type": "newMessageComposeCreated", "actionId": "onNewMessageComposeHandler" } ] } ]
- Die Eigenschaft "events" weist den
Tipp
- Informationen zu Laufzeiten in Add-Ins finden Sie unter Runtimes in Office-Add-Ins.
- Weitere Informationen zu Manifesten für Outlook-Add-Ins finden Sie unter Office-Add-In-Manifeste.
Implementieren der Ereignishandler
Ereignishandler müssen für die OnNewMessageCompose
Ereignisse und OnMessageFromChanged
konfiguriert werden. Die onNewMessageComposeHandler
Funktion fügt einer neu erstellten Nachricht eine Signatur hinzu, wenn noch keine Standardsignatur für das aktuelle Konto konfiguriert ist. Wenn das Konto im Feld Von geändert wird, aktualisiert die onMessageFromChangedHandler
Funktion die Signatur basierend auf diesem neu ausgewählten Konto.
Navigieren Sie aus demselben Schnellstartprojekt zum Verzeichnis ./src , und erstellen Sie dann einen neuen Ordner mit dem Namen launchevent.
Erstellen Sie im Ordner ./src/launchevent eine neue Datei mit dem Namen launchevent.js.
Öffnen Sie die Datei ./src/launchevent/launchevent.js in Ihrem Code-Editor, und fügen Sie den folgenden JavaScript-Code hinzu.
/* * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. * See LICENSE in the project root for license information. */ // The OnNewMessageCompose event handler that adds a signature to a new message. function onNewMessageComposeHandler(event) { const item = Office.context.mailbox.item; // Check if a default Outlook signature is already configured. item.isClientSignatureEnabledAsync({ asyncContext: event }, (result) => { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); return; } // Add a signature if there's no default Outlook signature configured. if (result.value === false) { item.body.setSignatureAsync( "<i>This is a sample signature.</i>", { asyncContext: result.asyncContext, coercionType: Office.CoercionType.Html }, addSignatureCallback ); } }); } // The OnMessageFromChanged event handler that updates the signature when the email address in the From field is changed. function onMessageFromChangedHandler(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 currently selected From account. item.from.getAsync({ asyncContext: event }, (result) => { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); return; } // Create a signature based on the currently selected From account. const name = result.value.displayName; const options = { asyncContext: { event: result.asyncContext, name: name }, isInline: true }; item.addFileAttachmentFromBase64Async(signatureIcon, "signatureIcon.png", options, (result) => { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); return; } // Add the created signature to the mail item. const signature = "<img src='cid:signatureIcon.png'>" + result.asyncContext.name; item.body.setSignatureAsync( signature, { asyncContext: result.asyncContext.event, coercionType: Office.CoercionType.Html }, addSignatureCallback ); }); }); } // Callback function to add a signature to the mail item. function addSignatureCallback(result) { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); return; } console.log("Successfully added signature."); result.asyncContext.completed(); } // IMPORTANT: To ensure your add-in is supported in Outlook, remember to // map the event handler name specified in the manifest's LaunchEvent element (with the add-in only manifest) // or the "autoRunEvents.events.actionId" property (with the unified manifest for Microsoft 365) // to its JavaScript counterpart. Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler); Office.actions.associate("onMessageFromChangedHandler", onMessageFromChangedHandler);
Wichtig
Windows: Derzeit werden Importe in der JavaScript-Datei, in der Sie die Behandlung für die ereignisbasierte Aktivierung implementieren, nicht unterstützt.
Tipp
Ereignisbasierte Add-Ins, die im klassischen Outlook unter Windows ausgeführt werden, führen keinen Code aus, der in den Office.onReady()
Funktionen und Office.initialize
enthalten ist. Es wird empfohlen, Ihre Add-In-Startlogik, z. B. die Überprüfung der Outlook-Version des Benutzers, stattdessen zu Ihren Ereignishandlern hinzuzufügen.
Aktualisieren der HTML-Datei für Befehle
Öffnen Sie im Ordner ./src/commandscommands.html.
Fügen Sie den folgenden Code unterhalb des vorhandenen Skripttags hinzu.
<script type="text/javascript" src="../launchevent/launchevent.js"></script>
Speichern Sie Ihre Änderungen.
Aktualisieren der Webpack-Konfigurationseinstellungen
Öffnen Sie im Stammverzeichnis des Projekts die dateiwebpack.config.js .
Suchen Sie das
plugins
Array imconfig
-Objekt, und fügen Sie das folgende neue Objekt am Anfang des Arrays hinzu.new CopyWebpackPlugin({ patterns: [ { from: "./src/launchevent/launchevent.js", to: "launchevent.js", }, ], }),
Speichern Sie Ihre Änderungen.
Probieren Sie es aus
Führen Sie die folgenden Befehle im Stammverzeichnis Ihres Projekts aus. Wenn Sie ausführen
npm start
, wird der lokale Webserver gestartet (sofern er noch nicht ausgeführt wird), und Ihr Add-In wird quergeladen.npm run build
npm start
Hinweis
Wenn Ihr Add-In nicht automatisch quergeladen wurde, befolgen Sie die Anweisungen unter Querladen von Outlook-Add-Ins zum Testen , um das Add-In in Outlook manuell querzuladen.
Erstellen Sie in Ihrem bevorzugten Outlook-Client eine neue Nachricht. Wenn Sie keine Outlook-Standardsignatur konfiguriert haben, fügt das Add-In der neu erstellten Nachricht eine hinzu.
Aktivieren Sie ggf. das Feld Von . Eine Anleitung zum Aktivieren finden Sie im Abschnitt "Warum fehlt die Schaltfläche Von?" unter Ändern des Kontos, das zum Senden von E-Mail-Nachrichten verwendet wird.
Wählen Sie Von und dann ein anderes Exchange-Konto aus. Alternativ können Sie die Exchange-E-Mail-Adresse manuell eingeben, indem Sie Von>anderer Email Adresse auswählen. Der Nachricht wird eine aktualisierte Signatur hinzugefügt, die die vorherige signatur ersetzt.
Wenn Sie den lokalen Webserver beenden und das Add-In deinstallieren möchten, befolgen Sie die entsprechenden Anweisungen:
Führen Sie den folgenden Befehl aus, um den Server zu beenden. Wenn Sie verwendet haben
npm start
, sollte auch der folgende Befehl das Add-In deinstallieren.npm stop
Wenn Sie das Add-In manuell quergeladen haben, lesen Sie Entfernen eines quergeladenen Add-Ins.
Problembehandlung für Ihr Add-In
Eine Anleitung zur Problembehandlung ihres ereignisbasierten Aktivierungs-Add-Ins finden Sie unter Problembehandlung bei ereignisbasierten Add-Ins und Spamberichts-Add-Ins.
Bereitstellen für Benutzer
Ähnlich wie bei anderen ereignisbasierten Add-Ins müssen Add-Ins, die die OnMessageFromChanged
Ereignisse und OnAppointmentFromChanged
verwenden, vom Administrator eines organization bereitgestellt werden. Eine Anleitung zum Bereitstellen Ihres Add-Ins über die Microsoft 365 Admin Center finden Sie im Abschnitt "Bereitstellen für Benutzer" unter Konfigurieren Ihres Outlook-Add-Ins für die ereignisbasierte Aktivierung.
Ereignisverhalten und Einschränkungen
Da die OnMessageFromChanged
Ereignisse und OnAppointmentFromChanged
über die ereignisbasierte Aktivierungsfunktion unterstützt werden, gelten das gleiche Verhalten und die gleichen Einschränkungen für Add-Ins, die als Ergebnis dieses Ereignisses aktiviert werden. Eine ausführliche Beschreibung finden Sie unter Ereignisbasiertes Aktivierungsverhalten und Einschränkungen.
Zusätzlich zu diesen Merkmalen gelten auch die folgenden Aspekte, wenn ein Add-In für diese Ereignisse aktiviert wird.
- Das
OnMessageFromChanged
Ereignis wird nur im Nachrichtenerstellungsmodus unterstützt, während dasOnAppointmentFromChanged
Ereignis nur im Terminerstellungsmodus unterstützt wird. - Im klassischen Outlook unter Windows wird nur das
OnMessageFromChanged
Ereignis unterstützt. - Die
OnMessageFromChanged
Ereignisse undOnAppointmentFromChanged
unterstützen nur Exchange-Konten. Bei nachrichten, die erstellt werden, wird das Exchange-Konto aus der Dropdownliste Des-Felds ausgewählt oder manuell in das Feld eingegeben. Bei Terminen, die zusammengestellt werden, wird das Exchange-Konto in der Dropdownliste des Organisatorfelds ausgewählt. Wenn ein Benutzer im Feld Von oder Organisator zu einem Nicht-Exchange-Konto wechselt, löscht der Outlook-Client automatisch die vom zuvor ausgewählten Konto festgelegte Signatur. - Szenarien für Stellvertretungen und freigegebene Postfächer werden unterstützt.
- Das
OnAppointmentFromChanged
Ereignis wird in Microsoft 365-Gruppenkalendern nicht unterstützt. Wenn ein Benutzer im Organisatorfeld von einem Exchange-Konto zu einem Microsoft 365-Gruppenkalenderkonto wechselt, löscht der Outlook-Client automatisch die vom Exchange-Konto festgelegte Signatur. - Wenn Sie im Feld Von oder Organisator zu einem anderen Exchange-Konto wechseln, werden die Add-Ins für das zuvor ausgewählte Konto (sofern vorhanden) beendet, und die Add-Ins, die dem neu ausgewählten Konto zugeordnet sind, werden geladen, bevor das
OnMessageFromChanged
Ereignis oderOnAppointmentFromChanged
initiiert wird. - Email Kontoaliase werden unterstützt. Wenn im Feld Von oder Organisator ein Alias für das aktuelle Konto ausgewählt wird, tritt das - oder
OnAppointmentFromChanged
-OnMessageFromChanged
Ereignis auf, ohne dass die Add-Ins des Kontos neu geladen werden. - Wenn die Dropdownliste Des - oder Organisatorfelds versehentlich geöffnet wird oder dasselbe Konto, das im Feld Von oder Organisator angezeigt wird, erneut ausgewählt wird, tritt das
OnMessageFromChanged
- oderOnAppointmentFromChanged
-Ereignis auf, die Add-Ins des Kontos werden jedoch nicht beendet oder erneut geladen.
Siehe auch
Office Add-ins