Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Server Subscription Edition (SE) | 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 | Nicht zutreffend |
|
Windows (klassisch) Version 2304 (Build 16327.20248) oder höher |
Unterstützt | Unterstützt | Unterstützt | Unterstützt |
|
Mac Version 16.77 (23081600) oder höher |
Unterstützt | – | Nicht zutreffend | Nicht zutreffend |
|
iOS Version 4.2502.0 |
Unterstützt | – | Nicht zutreffend | Nicht zutreffend |
|
Android Version 4.2502.0 |
Unterstützt | – | 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
Hinweis
Add-Ins, die das einheitliche Manifest für Microsoft 365 verwenden, werden in Outlook auf Mac und auf mobilen Geräten nicht direkt unterstützt. Um diese Art von Add-In auf Mac und auf mobilen Plattformen auszuführen, muss das Add-In zuerst im Microsoft Marketplace veröffentlicht und dann im Microsoft 365 Admin Center bereitgestellt werden. Weitere Informationen finden Sie im Abschnitt "Client- und Plattformunterstützung" unter Office-Add-Ins mit dem einheitlichen App-Manifest für Microsoft 365.
Öffnen Sie die manifest.json Datei.
Navigieren Sie zum
"authorization.permissions.resourceSpecific"Array. Ersetzen Sie im Arrayobjekt den Wert der"name"-Eigenschaft durch"MailboxItem.ReadWrite.User". Dies ist für das Add-In erforderlich, um die Signatur einer Nachricht aktualisieren zu können.... "authorization": { "permissions": { "resourceSpecific": [ { "name": "MailboxItem.ReadWrite.User", "type": "Delegated" } ] } }, ...Fügen Sie dem
"extensions.runtimes"-Array das folgende Objekt hinzu. Beachten Sie Folgendes zu diesem Markup.Der
"minVersion"des Postfachanforderungssatzes wird als"1.13"konfiguriert, da dies die niedrigste Version des Anforderungssatzes ist, der dasOnMessageFromChangedEreignis unterstützt. Weitere Informationen finden Sie in der Tabelle "Unterstützte Ereignisse" unter Aktivieren von Add-Ins mit Ereignissen.Der
"id"der Laufzeit ist auf einen beschreibenden Namen festgelegt,"autorun_runtime".Die
"code"Eigenschaft 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
"lifetime"-Eigenschaft ist auf"short"gesetzt. Dies bedeutet, dass die Runtime gestartet wird, wenn das Ereignis auftritt, und nach Abschluss des Handlers heruntergefahren wird.Es müssen Handler für die
OnMessageFromChangedEreignisse undOnNewMessageComposeausgeführt werden"actions". 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" }, { "id": "onNewMessageComposeHandler", "type": "executeFunction" } ] }Fügen Sie ein
"autoRunEvents"Array als Eigenschaft des -Objekts im"extensions"Array hinzu. Das"autoRunEvents"Array enthält ein -Objekt mit den folgenden Schlüsseleigenschaften.- Die
"events"-Eigenschaft weist denOnMessageFromChangedEreignissen undOnNewMessageComposeHandler zu. Informationen zu Ereignisnamen, die im einheitlichen Manifest verwendet werden, finden Sie in der Tabelle "Unterstützte Ereignisse" unter Aktivieren von Add-Ins mit Ereignissen. - Der in
"actionId"angegebene Funktionsname muss mit der"id"-Eigenschaft des entsprechenden Objekts im zuvor konfigurierten"actions"Array übereinstimmen.
"autoRunEvents": [ { "requirements": { "capabilities": [ { "name": "Mailbox", "minVersion": "1.13" } ], "scopes": [ "mail" ] }, "events": [ { "type": "messageFromChanged", "actionId": "onMessageFromChangedHandler" }, { "type": "newMessageComposeCreated", "actionId": "onNewMessageComposeHandler" } ] } ]- Die
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 platform = Office.context.platform; const signature = "<i>This is a sample signature.</i>"; // On supported platforms, check if a default Outlook signature is already configured. if (platform !== Office.PlatformType.Android && platform !== Office.PlatformType.iOS) { Office.context.mailbox.item.isClientSignatureEnabledAsync({ asyncContext: { event: event, signature: signature } }, (result) => { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); return; } // Add a signature if there's no default Outlook signature configured. const signatureEnabled = result.value; if (signatureEnabled === false) { const event = result.asyncContext.event; const signature = result.asyncContext.signature; setSignature(signature, event); } }); } else { setSignature(signature, event); } } // 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; const event = result.asyncContext.event; setSignature(signature, event); }); }); } // Sets the custom signature and adds it to the mail item. function setSignature(signature, event) { Office.context.mailbox.item.body.setSignatureAsync( signature, { asyncContext: event, coercionType: Office.CoercionType.Html }, (result) => { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); return; } console.log("Successfully added signature."); const event = result.asyncContext; event.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("onMessageFromChangedHandler", onMessageFromChangedHandler);
Wichtig
- Im klassischen Outlook unter Windows werden Importe in der JavaScript-Datei, in der Sie die Behandlung für die ereignisbasierte Aktivierung implementieren, nicht unterstützt.
- Wenn im klassischen Outlook unter Windows die im Manifest angegebene JavaScript-Funktion zum Behandeln eines Ereignisses ausgeführt wird, code in
Office.onReady()undOffice.initializenicht ausgeführt wird. Es wird empfohlen, alle Startlogik, die von Ereignishandlern benötigt wird, z. B. die Überprüfung der Outlook-Version des Benutzers, stattdessen den Ereignishandlern hinzuzufügen. - Um sicherzustellen, dass Ihr Add-In erwartungsgemäß ausgeführt wird, wenn ein Ereignis auftritt, rufen Sie
Office.actions.associatein der JavaScript-Datei auf, in der Ihre Handler implementiert sind. Dadurch wird der im Manifest angegebene Ereignishandlername seiner JavaScript-Entsprechung zugeordnet. Der Speicherort des Handlernamens im Manifest unterscheidet sich je nach Art des Manifests, das ihr Add-In verwendet.-
Einheitliches Manifest für Microsoft 365: Der in der
"actionId"-Eigenschaft des anwendbaren"autoRunEvents.events"Objekts angegebene Wert. - Reines Add-In-Manifest: Der im entsprechenden LaunchEvent-Element angegebene Funktionsname.
-
Einheitliches Manifest für Microsoft 365: Der in der
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
pluginsArray 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 buildnpm startHinweis
- Wenn Sie den Yeoman-Generator zum ersten Mal zum Entwickeln eines Office-Add-Ins verwenden, öffnet Ihr Standardbrowser ein Fenster, in dem Sie aufgefordert werden, sich bei Ihrem Microsoft 365-Konto anzumelden. Wenn kein Anmeldefenster angezeigt wird und ein Sideloading- oder Anmeldetimeoutfehler auftritt, führen Sie vor
atk auth login m365der erneuten Ausführung ausnpm start.
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.
- Wenn Sie den Yeoman-Generator zum ersten Mal zum Entwickeln eines Office-Add-Ins verwenden, öffnet Ihr Standardbrowser ein Fenster, in dem Sie aufgefordert werden, sich bei Ihrem Microsoft 365-Konto anzumelden. Wenn kein Anmeldefenster angezeigt wird und ein Sideloading- oder Anmeldetimeoutfehler auftritt, führen Sie vor
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. In Outlook auf mobilen Geräten fügt das Add-In eine Beispielsignatur hinzu, auch wenn Sie eine Standardsignatur konfiguriert haben.
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 stopWenn 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
Eine Anleitung zum Bereitstellen Ihres ereignisbasierten Add-Ins finden Sie im Abschnitt "Bereitstellen Ihres Add-Ins" unter Aktivieren von Add-Ins mit Ereignissen.
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
OnMessageFromChangedEreignis wird nur im Nachrichtenerstellungsmodus unterstützt, während dasOnAppointmentFromChangedEreignis nur im Terminerstellungsmodus unterstützt wird. - In Outlook im Web, unter Windows (neu und klassisch) und auf mobilen Geräten wird nur das
OnMessageFromChangedEreignis unterstützt. - Die
OnMessageFromChangedEreignisse undOnAppointmentFromChangedunterstützen nur Exchange-Konten. 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. - Abhängig von Ihrem Outlook-Client wird das Exchange-Konto in nachrichten, die erstellt werden, aus der Dropdownliste Des-Felds ausgewählt oder manuell in das Feld eingegeben. Outlook auf mobilen Geräten unterstützt nur die Auswahl eines Kontos aus der Dropdownliste "Von ". Bei Terminen, die zusammengestellt werden, wird das Exchange-Konto in der Dropdownliste des Organisatorfelds ausgewählt.
- In Outlook im Web, unter Windows (neu und klassisch) und unter Mac unterstützen die
OnMessageFromChangedEreignisse undOnAppointmentFromChangedSzenarien für Delegaten und freigegebene Postfächer. Diese Szenarien werden in Outlook auf mobilen Geräten nicht unterstützt. - Das
OnAppointmentFromChangedEreignis 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
OnMessageFromChangedEreignis oderOnAppointmentFromChangedinitiiert wird. - In Outlook im Web, unter Windows (neu und klassisch) und unter Mac werden E-Mail-Kontoaliase unterstützt. Wenn im Feld Von oder Organisator ein Alias für das aktuelle Konto ausgewählt wird, tritt das - oder
OnAppointmentFromChanged-OnMessageFromChangedEreignis auf, ohne dass die Add-Ins des Kontos neu geladen werden. Email Kontoaliase werden in Outlook auf mobilen Geräten nicht unterstützt. - 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