Share via


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 (Vorschau)
Unterstützt Nicht zutreffend
Windows (klassisch)
Version 2304 (Build 16327.20248) oder höher
Unterstützt Unterstützt Unterstützt
Mac
Version 16.77.816.0 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

  1. Öffnen Sie die manifest.json Datei.

  2. 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 auf Dem Mac und outlook unter Windows (Vorschau) 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 und OnNewMessageCompose 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"
            }
        ]
    }
    
  3. 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 und OnNewMessageCompose 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"
                }
            ]
        }
    ]
    

Tipp

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.

  1. Navigieren Sie aus demselben Schnellstartprojekt zum Verzeichnis ./src , und erstellen Sie dann einen neuen Ordner mit dem Namen launchevent.

  2. Erstellen Sie im Ordner ./src/launchevent eine neue Datei mit dem Namen launchevent.js.

  3. Ö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 the Outlook client on Windows, remember to 
    // map the event handler name specified in the manifest's LaunchEvent element (with the XML manifest)
    // or the "autoRunEvents.events.actionId" property (with the unified manifest for Microsoft 365)
    // to its JavaScript counterpart.
    if (Office.context.platform === Office.PlatformType.PC || Office.context.platform == null) {
        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 in 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

  1. Öffnen Sie im Ordner ./src/commandscommands.html.

  2. Fügen Sie den folgenden Code unterhalb des vorhandenen Skripttags hinzu.

    <script type="text/javascript" src="../launchevent/launchevent.js"></script>
    
  3. Speichern Sie Ihre Änderungen.

Aktualisieren der Webpack-Konfigurationseinstellungen

  1. Öffnen Sie im Stammverzeichnis des Projekts die dateiwebpack.config.js .

  2. Suchen Sie das plugins Array im config -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",
        },
      ],
    }),
    
  3. Speichern Sie Ihre Änderungen.

Probieren Sie es aus

  1. 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.

  2. 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.

    Eine Beispielsignatur, die einer neu verfassten Nachricht hinzugefügt wird, wenn keine Outlook-Standardsignatur für das Konto konfiguriert ist.

  3. 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.

  4. 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.

    Ein Beispiel für eine aktualisierte Signatur mit einem Logo, wenn das Konto im Feld Von geändert wird.

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 das OnAppointmentFromChanged Ereignis nur im Terminerstellungsmodus unterstützt wird.
  • In Outlook unter Windows wird nur das OnMessageFromChanged -Ereignis unterstützt.
  • Die OnMessageFromChanged Ereignisse und OnAppointmentFromChanged 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 oder OnAppointmentFromChanged 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 -OnMessageFromChangedEreignis 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 - oder OnAppointmentFromChanged -Ereignis auf, die Add-Ins des Kontos werden jedoch nicht beendet oder erneut geladen.

Siehe auch