Freigeben über


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

  1. Öffnen Sie die manifest.json Datei.

  2. 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"
                }
            ]
        }
    },
    ...
    
  3. 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 das OnMessageFromChanged Ereignis 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 OnMessageFromChanged Ereignisse und OnNewMessageCompose ausgefü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"
            }
        ]
    }
    
  4. 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 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 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"
                }
            ]
        }
    ]
    

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 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() und Office.initialize nicht 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.associate in 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.

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 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 m365 der erneuten Ausführung aus npm 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.

  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. In Outlook auf mobilen Geräten fügt das Add-In eine Beispielsignatur hinzu, auch wenn Sie eine Standardsignatur konfiguriert haben.

    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.

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

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 OnMessageFromChanged Ereignis wird nur im Nachrichtenerstellungsmodus unterstützt, während das OnAppointmentFromChanged Ereignis nur im Terminerstellungsmodus unterstützt wird.
  • In Outlook im Web, unter Windows (neu und klassisch) und auf mobilen Geräten wird nur das OnMessageFromChanged Ereignis unterstützt.
  • Die OnMessageFromChanged Ereignisse und OnAppointmentFromChanged unterstü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 OnMessageFromChanged Ereignisse und OnAppointmentFromChanged Szenarien für Delegaten und freigegebene Postfächer. Diese Szenarien werden in Outlook auf mobilen Geräten nicht 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.
  • 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 - oder OnAppointmentFromChanged -Ereignis auf, die Add-Ins des Kontos werden jedoch nicht beendet oder erneut geladen.

Siehe auch