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.
Implementieren Sie benutzerdefinierte Verschlüsselungs- und Entschlüsselungsfunktionen in einem Outlook-Add-In, um die E-Mail-Kommunikation zu schützen. Das OnMessageRead -Ereignis ermöglicht es Ihrem Add-In, verschlüsselte Nachrichten automatisch zu identifizieren und Entschlüsselung, Inhaltsanzeige und Fehlerbenachrichtigungen zu verarbeiten.
Hinweis
Die OnMessageRead Ereignis- und Entschlüsselungs-APIs befinden sich in der Vorschauphase. Features in der Vorschau sollten nicht in Produktions-Add-Ins verwendet werden, da sie sich aufgrund von Feedback, das wir erhalten, ändern können. Wir laden Sie ein, dieses Feature in Test- oder Entwicklungsumgebungen auszuprobieren und Feedback zu Ihrer Erfahrung über GitHub zu begrüßen (siehe Abschnitt "Feedback zu Office-Add-Ins" am Ende dieser Seite).
Übersicht über die Verschlüsselungs- und Entschlüsselungsworkflows
Tipp
- Die Verschlüsselungs- und Entschlüsselungsworkflows implementieren die ereignisbasierte Aktivierungsfunktion. Wenn Sie mit der ereignisbasierten Aktivierung in Outlook-Add-Ins nicht vertraut sind, empfiehlt es sich, sich zunächst mit dem Feature und dessen Implementierung vertraut zu machen. Weitere Informationen finden Sie unter Aktivieren von Add-Ins mit Ereignissen.
- Der Mindestanforderungssatz und die unterstützten Plattformen können für jede api variieren, die in diesem Abschnitt empfohlen wird. Es wird empfohlen, alle Anforderungen anhand von Outlook JavaScript-API-Anforderungssätzen zu überprüfen und diese durch Dokumentation für die spezifische API zu ergänzen.
Die folgende Tabelle enthält eine Übersicht über die Ver- und Entschlüsselungsworkflows eines Outlook-Add-Ins. Außerdem wird ermittelt, ob ein Schritt eine benutzerdefinierte Lösung erfordert oder von der Office JavaScript-API-Bibliothek (Office.js) unterstützt wird.
| Schritt | Implementierung |
|---|---|
| Der Benutzer erstellt eine Nachricht und verwendet Ihr Add-In, um Verschlüsselungsregeln anzuwenden. | Sie müssen Ein eigenes Verschlüsselungsprotokoll implementieren, damit das Add-In den Inhalt der Nachricht und ihrer Anlagen schützen kann. |
| Benutzer sendet die Nachricht | Implementieren Sie einen Handler für das OnMessageSend-Ereignis , damit Ihr Add-In das Verschlüsselungsprotokoll automatisch ausführen kann, wenn der Benutzer Senden auswählt. Um eine Nachricht zu identifizieren, die während des Entschlüsselungsprozesses mit Ihrem Add-In verschlüsselt wurde, verwenden Sie die Internetheader-APIs , um einer Nachricht einen Header hinzuzufügen. Der Headerschlüssel muss mit dem wert übereinstimmen, der HeaderName im Attribut des <LaunchEvent-Elements> für das OnMessageRead-Ereignis im Manifest des Add-Ins angegeben ist. Weitere Informationen finden Sie unter Implementieren der Entschlüsselung mithilfe der ereignisbasierten Aktivierung. |
| Der Empfänger empfängt die verschlüsselte Nachricht und öffnet sie. | Wenn der Empfänger über dasselbe Add-In verfügt, das zum Verschlüsseln der in Outlook installierten Nachricht verwendet wurde, überprüft das Add-In, ob der in der Nachricht enthaltene Headerschlüssel mit dem für das OnMessageRead Ereignis im Manifest angegebenen Wert übereinstimmt. Dieser Vorgang wird automatisch von einem Add-In ausgeführt, das das OnMessageRead Ereignis behandelt, sodass Sie die Überprüfung nicht manuell implementieren müssen. Wenn die Header übereinstimmen, tritt das OnMessageRead Ereignis auf, und sein Handler wird ausgeführt. Weitere Informationen finden Sie unter Implementieren der Entschlüsselung mithilfe der ereignisbasierten Aktivierung. |
| Add-In entschlüsselt die Nachricht | Sie müssen ihr eigenes Entschlüsselungsprotokoll im OnMessageRead Ereignishandler implementieren. Während das Add-In die Nachricht und ihre Anlagen entschlüsselt, wird dem Benutzer eine Benachrichtigung angezeigt, um den Benutzer darauf hinzuweisen, dass seine Nachricht vom Add-In verarbeitet wird. Diese Benachrichtigung wird automatisch von einem Add-In angezeigt, das das OnMessageRead Ereignis behandelt, sodass Sie keines manuell erstellen müssen. |
| Empfänger zeigt die entschlüsselte Nachricht und ihre Anlagen an, falls vorhanden | Sobald der Entschlüsselungsvorgang abgeschlossen ist, wird dem Benutzer automatisch eine Benachrichtigung angezeigt, um zu benachrichtigen, dass das Add-In die Verarbeitung der Nachricht abgeschlossen hat. Rufen Sie in Ihrem OnMessageRead Handler die event.completed-Methode auf, und übergeben Sie ihr ein MessageDecryptEventCompletedOptions-Objekt . Mit dem MessageDecryptEventCompletedOptions -Objekt können Sie angeben, ob der entschlüsselte Inhalt dem Empfänger angezeigt werden soll. Weitere Informationen finden Sie unter Implementieren der Ereignisbehandlung. |
Implementieren der Entschlüsselung mithilfe der ereignisbasierten Aktivierung
Sie müssen Ihre eigenen Verschlüsselungs- und Entschlüsselungsprotokolle implementieren. Das Add-In muss auch für die Behandlung des OnMessageRead Ereignisses konfiguriert werden, um bequem zu bestimmen, wann Ihr Add-In eine Nachricht entschlüsseln und den entschlüsselten Inhalt anzeigen kann. Um das OnMessageRead Ereignis zu implementieren, müssen Sie:
Unterstützte Umgebungen
Das OnMessageRead Ereignis wird auf der Nachrichtenleseoberfläche unterstützt. Die Unterstützung variiert je nach Client- und Exchange-Umgebung, wie in der folgenden Tabelle gezeigt.
| Client | Exchange Online: | Exchange Subscription Edition (SE) | Exchange Server 2019 | Exchange Server 2016 |
|---|---|---|---|---|
| Webbrowser | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar |
| Windows (neu) | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar |
|
Windows (klassisch) Version 2510 (Build 19312.20000) und höher |
In der Vorschau | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar |
| Mac | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar |
| Android | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar |
| iOS | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar | Nicht verfügbar |
Vorschau der Entschlüsselungs-APIs im klassischen Outlook unter Windows
Um eine Vorschau der Entschlüsselungs-APIs im klassischen Outlook unter Windows anzuzeigen, treten Sie dem Microsoft 365 Insider-Programm bei, und wählen Sie dann den Betakanal im Outlook-Client aus. Ihr Client muss version 2510 (Build 19312.20000) oder höher aufweisen.
Das klassische Outlook unter Windows enthält eine lokale Kopie der Produktions- und Betaversionen von Office.js, anstatt aus dem Content Delivery Network (CDN) zu laden. Standardmäßig wird auf die lokale Produktionskopie der API verwiesen. Um auf die lokale Betakopie der API zu verweisen, müssen Sie die Registrierung Ihres Computers konfigurieren. Dadurch können Sie Vorschaufeatures in Ihren Ereignishandlern im klassischen Outlook unter Windows testen.
Navigieren Sie in der Registrierung zu
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\WebExt\Developer. Wenn der Schlüssel nicht vorhanden ist, erstellen Sie ihn.Erstellen Sie einen Eintrag namens ,
EnableBetaAPIsInJavaScriptund legen Sie dessen Wert auf fest1.
Konfigurieren des Manifests
Hinweis
Das OnMessageRead Ereignis kann derzeit nur mit einem Add-In-Manifest implementiert werden.
Um Ihr Add-In für das OnMessageRead Ereignis zu aktivieren, müssen Sie den <VersionOverridesV1_1> Knoten der manifest.xml-Datei Ihres Add-Ins wie folgt konfigurieren.
- Zum Ausführen eines ereignisbasierten Add-Ins im klassischen Outlook unter Windows müssen Sie die JavaScript-Datei angeben, die den Ereignishandler im <untergeordneten Element Außerkraftsetzung> des <Runtime-Elements> enthält.
- Geben Sie das
OnMessageRead-Ereignis imType-Attribut eines <LaunchEvent-Elements> an. Sie müssen dem -Attribut des -Elements denFunctionNameFunktionsnamen des Ereignishandlers zuweisen. Um die Überprüfung zu erleichtern, ob die Nachricht vom Add-In verschlüsselt wurde, muss imHeaderName-Attribut ein Headerschlüssel angegeben werden. Derselbe Header wird einer Nachricht hinzugefügt, die vom Add-In verschlüsselt wird.
Es folgt ein Beispiel für einen <VersionOverrides> Knoten, der das OnMessageRead -Ereignis implementiert.
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.15">
<bt:Set Name="Mailbox"/>
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<Runtimes>
<!-- References the HTML file that links to the event handler. -->
<Runtime resid="WebViewRuntime.Url">
<!-- References the JavaScript file that contains the event handler. This is used by classic Outlook on Windows. -->
<Override type="javascript" resid="JSRuntime.Url"/>
</Runtime>
</Runtimes>
<DesktopFormFactor>
<FunctionFile resid="WebViewRuntime.Url"/>
<!-- Implements event-based activation. -->
<ExtensionPoint xsi:type="LaunchEvent">
<LaunchEvents>
<LaunchEvent Type="OnMessageSend" FunctionName="onMessageSendHandler" SendMode="SoftBlock"/>
<LaunchEvent Type="OnMessageRead" FunctionName="onMessageReadHandler" HeaderName="contoso-encrypted"/>
</LaunchEvents>
<!-- Identifies the runtime to be used (also referenced by the Runtime element). -->
<SourceLocation resid="WebViewRuntime.Url"/>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
...
<bt:Urls>
<bt:Url id="WebViewRuntime.Url" DefaultValue="https://www.contoso.com/launchevent.html"/>
<bt:Url id="JSRuntime.Url" DefaultValue="https://www.contoso.com/launchevent.js"/>
</bt:Urls>
...
</Resources>
</VersionOverrides>
</VersionOverrides>
Implementieren der Ereignisbehandlung
Der OnMessageRead Ereignishandler wird verwendet, um den Entschlüsselungsvorgang auszuführen und zu bestimmen, ob der entschlüsselte Inhalt einer Nachricht angezeigt werden soll.
- Um sicherzustellen, dass der Handler ausgeführt wird, wenn das
OnMessageReadEreignis auftritt, rufen SieOffice.actions.associatein der JavaScript-Datei auf, in der der Handler implementiert ist. Dadurch wird der im -Attribut des<LaunchEvent>-Elements imFunctionNameManifest angegebene Handlername dem JavaScript-Gegenstück zugeordnet. - Sobald der Entschlüsselungsvorgang abgeschlossen ist, müssen Sie aufrufen
event.completed, um dem Client zu signalisieren, dass das Add-In die Verarbeitung desOnMessageReadEreignisses abgeschlossen hat. Um den entschlüsselten Inhalt einer Nachricht und ihrer Anlagen anzuzeigen, übergeben Sie ein MessageDecryptEventCompletedOptions-Objekt an denevent.completedAufruf, und legen Sie dessen allowEvent-Eigenschaft auf festtrue. Geben Sie dann den entschlüsselten Inhalt der Nachricht in den Eigenschaften emailBody und attachments des Objekts an. Sie können auch alle Daten angeben, die Ihr Add-In für die Verarbeitung in der contextData-Eigenschaft benötigt. Beispielsweise können Sie benutzerdefinierte Internetheader speichern, um Nachrichten in Antwort- und Weiterleitungsszenarien zu entschlüsseln.
Hinweis
Achten Sie beim Erstellen eines ereignisbasierten Add-Ins für das klassische Outlook unter Windows auf Folgendes.
- Importe werden in der JavaScript-Datei, die den Ereignishandler enthält, derzeit nicht unterstützt.
- Wenn die im Manifest angegebene JavaScript-Funktion zum Behandeln eines Ereignisses ausgeführt wird, wird code in
Office.onReady()undOffice.initializenicht ausgeführt. Es wird empfohlen, dem Ereignishandler stattdessen jede Startlogik hinzuzufügen, die für den Ereignishandler benötigt wird, z. B. die Überprüfung der Outlook-Version des Benutzers.
Es folgt ein Beispiel für einen OnMessageRead Ereignishandler.
function onMessageReadHandler(event) {
// Your code to decrypt the contents of a message would appear here.
...
// Use the results from your decryption process to display the decrypted contents of the message body and attachments.
const decryptedBodyContent = "<p>Please find attached the recent report and its supporting documentation.</p>";
const decryptedBody = {
coercionType: Office.CoercionType.Html,
content: decryptedBodyContent
};
// Decrypted content and properties of a file attachment.
const decryptedPdfFile = "JVBERi0xLjQKJeLjz9MKNCAwIG9i...";
const pdfFileName = "Fabrikam_Report_202509";
// Decrypted content and properties of a mail item.
const decryptedEmailFile = "VGhpcyBpcyBhIHRleHQgZmlsZS4=...";
const emailFileName = "Fabrikam_Report_202508.eml";
// Decrypted properties of a cloud attachment.
const cloudFilePath = "https://contosostorage.com/reports/weekly_forecast.xlsx";
const cloudFileName = "weekly_forecast.xlsx";
// Decrypted content and properties of an inline image.
const decryptedImageFile = "iVBORw0KGgoAAAANSUhEUgAA...";
const imageFileName = "banner.png";
const imageContentId = "image001.png@01DC1DD9.1A4AA300";
const decryptedAttachments = [
{
attachmentType: Office.MailboxEnums.AttachmentType.File,
content: decryptedPdfFile,
isInline: false,
name: pdfFileName
},
{
attachmentType: Office.MailboxEnums.AttachmentType.Item,
content: decryptedEmailFile,
isInline: false,
name: emailFileName
},
{
attachmentType: Office.MailboxEnums.AttachmentType.Cloud,
isInline: false,
name: cloudFileName,
path: cloudFilePath
},
{
attachmentType: Office.MailboxEnums.AttachmentType.File,
content: decryptedImageFile,
contentId: imageContentId,
isInline: true,
name: imageFileName
}
];
event.completed({
allowEvent: true,
emailBody: decryptedBody,
attachments: decryptedAttachments,
contextData: { messageType: "ReplyFromDecryptedMessage" }
});
}
// 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("onMessageReadHandler", onMessageReadHandler);
Tipp
Im klassischen Outlook unter Windows werden Bildern automatisch eine Inhalts-ID zugewiesen, wenn sie einer Nachricht als Inlineanlagen hinzugefügt werden. Im Textkörper einer Nachricht wird die Inhalts-ID einer Inlineanlage im src -Attribut des <img> Elements angegeben, ähnlich wie im folgenden Beispiel.
<img width=96 height=96 id="Picture_1" src="cid:image001.png@01DC1E6F.FC7C7410">
Um diese Inlineanlagen während der Entschlüsselung einfach zu identifizieren und bereitzustellen, empfehlen wir, die Inhalts-IDs von Inlineanlagen während der Verschlüsselung im Nachrichtenheader zu speichern. Rufen Sie Office.context.mailbox.item.getAttachmentsAsync auf, um die Inhalts-ID einer Inlineanlage abzurufen. Rufen Sie dann Office.context.mailbox.item.internetHeaders.setAsync auf, um die ID im Header der Nachricht zu speichern.
Verhalten und Einschränkungen
Beachten Sie das Verhalten und die Einschränkungen ereignisbasierter Add-Ins. Weitere Informationen finden Sie unter Aktivieren von Add-Ins mit Ereignissen.
Da jedes Add-In ein eigenes Verschlüsselungsprotokoll verwendet, kann eine Nachricht nur von demselben Add-In entschlüsselt werden, das sie verschlüsselt hat. Wenn ein Benutzer nicht das erforderliche Add-In zum Entschlüsseln einer Nachricht installiert hat, wird er in einer Benachrichtigung darüber benachrichtigt, dass die Nachricht verschlüsselt ist. Um den Benutzer durch den Entschlüsselungsprozess zu führen, passen Sie eine Platzhalternachricht für den Text der verschlüsselten Nachricht an. Die Platzhaltermeldung kann Informationen zur Installation des Add-Ins enthalten. Um den Nachrichtentext während des Verschlüsselungsvorgangs festzulegen, rufen Sie Office.context.mailbox.item.body.setAsync auf.
Um Datensicherheit und Vertraulichkeit sicherzustellen, werden entschlüsselte Inhalte nicht auf dem Outlook-Client gespeichert. Der Inhalt einer verschlüsselten Nachricht wird jedes Mal entschlüsselt, wenn ein Benutzer sie öffnet.
Eine verschlüsselte Nachricht muss zuerst entschlüsselt werden, bevor ein Benutzer sie beantworten oder weiterleiten kann. Ein Benutzer kann eine verschlüsselte Nachricht nicht beantworten oder weiterleiten, während sie entschlüsselt wird.
Wenn ein Benutzer zu einem anderen E-Mail-Element navigiert, während eine verschlüsselte Nachricht entschlüsselt wird, wird der Entschlüsselungsprozess beendet. Der Benutzer muss die Nachricht erneut auswählen oder öffnen, um den Entschlüsselungsprozess zu aktivieren.
Beim Beantworten oder Weiterleiten verschlüsselter Nachrichten werden Entwürfe unverschlüsselt im Ordner Entwürfe gespeichert.
Entschlüsselungsbenachrichtigungen
Add-Ins, die das OnMessageRead Ereignis behandeln, zeigen automatisch Benachrichtigungen in bestimmten Entschlüsselungsszenarien an, wie in der folgenden Tabelle beschrieben.
| Benachrichtigung | Szenario |
|---|---|
| <Der Add-In-Name> ist nicht verfügbar und kann Ihre Nachricht derzeit nicht verarbeiten. | Gilt nur für das klassische Outlook unter Windows. Diese Benachrichtigung wird angezeigt, wenn das Add-In nicht geladen werden kann, weil ein Fehler verhindert hat, dass das Add-In geladen wird oder der Client oder Computer des Benutzers offline ist. |
| <Der Add-In-Name> konnte Ihre Nachricht nicht verarbeiten. | Fehler beim Entschlüsseln der Nachricht durch das Add-In. Um den Entschlüsselungsvorgang erneut zu versuchen, muss der Empfänger zu einer anderen Nachricht wechseln und dann die verschlüsselte Nachricht erneut öffnen, um das OnMessageRead Ereignis aufzurufen. |
| <Add-In-Name-Add-In> entschlüsselt Ihre Nachricht. | Das Add-In verarbeitet das OnMessageRead -Ereignis, um die Nachricht zu entschlüsseln. |
| Diese Nachricht wird mit dem <Add-In-Namen-Add-In> verschlüsselt. | Diese Benachrichtigung wird Empfängern angezeigt, bei denen das erforderliche Verschlüsselungs-Add-In nicht installiert ist. Um Anleitungen zum Entschlüsseln der Nachricht bereitzustellen, fügen Sie eine Platzhalternachricht in den Text der verschlüsselten Nachricht ein. Weitere Informationen finden Sie unter Verhalten und Einschränkungen. |
| <Add-In-Name-Add-In> hat Ihre Nachricht entschlüsselt. | Das Add-In hat den Inhalt der Nachricht erfolgreich entschlüsselt. Der Benutzer kann nun die Nachricht und ihre Anlagen anzeigen. |
| <Add-In-Name> dauert länger als erwartet, um Ihre Nachricht zu verarbeiten. | Das Add-In wird seit mehr als fünf Sekunden, aber weniger als fünf Minuten ausgeführt. |
| <Timeout für Add-In-Name> . Um es erneut zu versuchen, wählen Sie eine andere E-Mail aus, und kehren Sie dann zu dieser Nachricht zurück. | Nach fünf Minuten Ausführung des Add-Ins tritt ein Timeout auf. Um den Entschlüsselungsvorgang erneut zu versuchen, muss der Empfänger zu einer anderen Nachricht wechseln und dann die verschlüsselte Nachricht erneut öffnen, um das OnMessageRead Ereignis aufzurufen. |
Siehe auch
- Datenschutz und Sicherheit für Office-Add-Ins
- Aktivieren von Add-Ins mit Ereignissen
- Problembehandlung bei ereignisbasierten Add-Ins und Spam-Berichts-Add-Ins
- Abrufen und Festlegen von Internetheadern für eine Nachricht in einem Outlook-Add-In
- Verwalten der Vertraulichkeitsbezeichnung Ihrer Nachricht oder Ihres Termins im Verfassenmodus
Office Add-ins