Sie können den Text einer Nachricht oder eines Termins sowohl im Lese- als auch im Verfassenmodus abrufen. Um den Text eines E-Mail-Elements abzurufen, rufen Sie Office.context.mailbox.item.body.getAsync auf. Wenn Sie die getAsync -Methode aufrufen, müssen Sie das Format für den zurückgegebenen Text im coercionType -Parameter angeben. Beispielsweise können Sie den Text im HTML- oder Nur-Text-Format abrufen.
Im folgenden Beispiel wird der Text eines Elements im HTML-Format abgerufen.
// Get the current body of the message or appointment.
Office.context.mailbox.item.body.getAsync(Office.CoercionType.Html, (bodyResult) => {
if (bodyResult.status === Office.AsyncResultStatus.Failed) {
console.log(`Failed to get body: ${bodyResult.error.message}`);
return;
}
const body = bodyResult.value;
// Perform additional operations here.
});
Abrufen des Nachrichtenantwortentexts in Outlook im Web, auf Mobilgeräten oder im neuen Outlook unter Windows
In Outlook im Web, auf mobilen Geräten und im neuen Outlook unter Windows wird beim Aufrufen Office.context.mailbox.item.body.getAsync in einer Nachrichtenantwort der gesamte Textkörper eines Unterhaltungsthreads zurückgegeben. Wenn Sie nur die aktuelle Antwort benötigen, können Sie die BodyMode-Option im getAsync Aufruf angeben.
In Outlook im Web und dem neuen Outlook unter Windows können Sie die Option verwenden, um die bodyModeEinstellung nachrichtenorganisation eines Benutzers widerzuspiegeln. Benutzer können ihre Nachrichten als Unterhaltungen oder einzelne Nachrichten in Einstellungen>E-Mail-Layout>>Nachrichten organization organisieren. Diese Einstellung wirkt sich darauf aus, wie viel Text einer Nachricht dem Benutzer angezeigt wird, insbesondere in Unterhaltungsthreads mit mehreren Nachrichten. Je nach Einstellung wird der Inhalt des gesamten Konversationsthreads oder nur der aktuellen Nachricht angezeigt. Weitere Informationen zur Einstellung Nachrichtenorganisation finden Sie unter Ändern der Anzeige der Nachrichtenliste in Outlook.
In der folgenden Tabelle ist der Teil des Textkörpers aufgeführt, der je bodyMode nach Konfiguration zurückgegeben wird.
bodyMode Konfiguration |
Auswirkung auf den zurückgegebenen Text |
bodyMode ist im getAsync Aufruf nicht angegeben. |
Der gesamte Text des Konversationsthreads wird zurückgegeben. In Outlook auf Mobilgeräten wird jedoch im Schnellantwortmodus (dem Antwortfeld am ende der Nachricht) nur der Text der aktuellen Antwort zurückgegeben. |
bodyMode ist auf festgelegt. Office.MailboxEnums.BodyMode.FullBody |
Der gesamte Text des Konversationsthreads wird zurückgegeben. In Outlook auf Mobilgeräten wird jedoch im Schnellantwortmodus nur der Text der aktuellen Antwort zurückgegeben. |
bodyMode ist auf festgelegt. Office.MailboxEnums.BodyMode.HostConfig |
Wenn nachrichtenorganisation in Outlook im Web und dem neuen Outlook unterWindows auf Nachrichten nach Unterhaltung> gruppierenAlle Nachrichten aus der ausgewählten Unterhaltung oder E-Mail-Adresse gruppiert nach Unterhaltung>/ gruppiert oben Neuam unteren Rand festgelegt ist, wird nur der Text der aktuellen Antwort zurückgegeben. Wenn hingegen Nachrichtenorganisation auf Einzelne Nachrichten: Nachrichten nicht gruppieren>Nur eine einzelne Nachricht oder E-Mail als einzelne Nachrichten anzeigen festgelegt ist, wird der gesamte Text des Unterhaltungsthreads zurückgegeben.
In Outlook für Mobilgeräte wird nur der Text der aktuellen Antwort zurückgegeben. |
Hinweis
- In Outlook auf mobilen Geräten ist die
bodyMode Option ab Version 4.2538.0 verfügbar.
- Die
bodyMode Option wird in Outlook unter Windows (klassisch) und auf Mac ignoriert.
Im folgenden Beispiel wird die bodyMode Option zum Berücksichtigen der Nachrichteneinstellung des Benutzers angegeben.
Office.context.mailbox.item.body.getAsync(
Office.CoercionType.Html,
{ bodyMode: Office.MailboxEnums.BodyMode.HostConfig },
(bodyResult) => {
if (bodyResult.status === Office.AsyncResultStatus.Failed) {
console.log(`Failed to get body: ${bodyResult.error.message}`);
return;
}
const body = bodyResult.value;
// Perform additional operations here.
}
);
Verwenden Sie die asynchronen Methoden (Body.getAsync, Body.getTypeAsync, Body.prependAsync, Body.setAsync und Body.setSelectedDataAsync), um den Texttyp abzurufen und dann Daten in den Textkörper eines Termins oder einer Nachricht einzufügen, die gerade erstellt wird. Diese asynchronen Methoden sind nur zum Verfassen von Add-Ins verfügbar. Um diese Methoden zu verwenden, stellen Sie sicher, dass Sie das Add-In-Manifest entsprechend eingerichtet haben, damit Outlook Ihr Add-In in Formularen zum Verfassen aktiviert.
In Outlook kann ein Benutzer eine Nachricht im Text-, HTML- oder Rich Text-Format (RTF) erstellen, und kann einen Termin im HTML-Format erstellen. Vor dem Einfügen von Daten müssen Sie zunächst das unterstützte Elementformat überprüfen, indem Sie aufrufen getTypeAsync, da Sie möglicherweise zusätzliche Schritte ausführen müssen. Der Wert, getTypeAsync der zurückgegeben wird, hängt vom ursprünglichen Elementformat sowie von der Unterstützung des Gerätebetriebssystems und der Anwendung ab, die im HTML-Format bearbeitet werden sollen. Nachdem Sie das Elementformat überprüft haben, legen Sie den coercionType Parameter von prependAsync oder setSelectedDataAsync entsprechend fest, um die Daten einzufügen, wie in der folgenden Tabelle gezeigt. Wenn Sie kein Argument angeben und setSelectedDataAsync davon ausgehen, prependAsync dass die einzufügenden Daten im Textformat vorliegen.
| Einzufügende Daten |
Von getTypeAsync zurückgegebenes Elementformat |
zu verwendende coercionType |
| Text |
Text1 |
Text |
| HTML |
Text1 |
Text2 |
| Text |
HTML |
Text/HTML |
| HTML |
HTML |
HTML |
Hinweis
1 Gibt auf Tablets und Smartphones "Text" zurück, getTypeAsync wenn das Betriebssystem oder die Anwendung die Bearbeitung eines Elements, das ursprünglich in HTML erstellt wurde, nicht unterstützt.
2 Wenn die einzufügenden Daten HTML sind und getTypeAsync einen Texttyp für das aktuelle E-Mail-Element zurückgeben, müssen Sie Ihre Daten als Text neu organisieren und auf Office.CoercionType.TextfestlegencoercionType. Wenn Sie die HTML-Daten einfach in ein textformatiertes Element einfügen, zeigt die Anwendung die HTML-Tags als Text an. Wenn Sie versuchen, die HTML-Daten einzufügen und auf Office.CoercionType.HtmlfestzulegencoercionType, erhalten Sie eine Fehlermeldung.
Zusätzlich zum coercionType -Parameter verwenden , wie bei den meisten asynchronen Methoden in der Office-JavaScript-API , getTypeAsyncprependAsyncund setSelectedDataAsync andere optionale Eingabeparameter. Weitere Informationen zum Angeben dieser optionalen Eingabeparameter finden Sie unter "Übergeben optionaler Parameter an asynchrone Methoden" unter Asynchrone Programmierung in Office-Add-Ins.
Einfügen von Daten an der aktuellen Cursorposition
Dieser Abschnitt zeigt ein Codebeispiel, das verwendet, getTypeAsync um den Texttyp des Elements zu überprüfen, das gerade zusammengesetzt wird, und dann verwendet, setSelectedDataAsync um Daten an der aktuellen Cursorposition einzufügen.
Sie müssen eine Datenzeichenfolge als Eingabeparameter an setSelectedDataAsyncübergeben. Je nach Typ des Elementkörpers können Sie diese Datenfolge im Text- oder HTML-Format angeben. Wie bereits erwähnt, können Sie optional den Typ der Daten angeben, die in den coercionType Parameter eingefügt werden sollen. Um die status und Ergebnisse von setSelectedDataAsyncabzurufen, übergeben Sie eine Rückruffunktion und optionale Eingabeparameter an die -Methode, und extrahieren Sie dann die erforderlichen Informationen aus dem asyncResult-Ausgabeparameter des Rückrufs. Wenn die Methode erfolgreich ist, können Sie den Typ des Elementtexts aus der asyncResult.value -Eigenschaft abrufen, der entweder "text" oder "html" ist.
Wenn der Benutzer den Cursor nicht im Textkörper des Elements platziert hat, setSelectedDataAsync fügt die Daten oben im Textkörper ein. Wenn der Benutzer Text im Textkörper des Elements ausgewählt hat, setSelectedDataAsync ersetzt den markierten Text durch die von Ihnen angegebenen Daten. Beachten Sie, dass setSelectedDataAsync fehlschlagen kann, wenn der Benutzer beim Verfassen des Elements gleichzeitig die Cursorposition ändert. Die maximal zulässige Anzahl Zeichen, die Sie mit einem Mal eingeben können, ist auf 1000000 Zeichen beschränkt.
let item;
// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
if (info.host === Office.HostType.Outlook) {
item = Office.context.mailbox.item;
setItemBody();
}
});
// Inserts data at the current cursor position.
function setItemBody() {
// Identify the body type of the mail item.
item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
// Insert data of the appropriate type into the body.
if (asyncResult.value === Office.CoercionType.Html) {
// Insert HTML into the body.
item.body.setSelectedDataAsync(
"<b> Kindly note we now open 7 days a week.</b>",
{ coercionType: Office.CoercionType.Html, asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
(asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
/*
Run additional operations appropriate to your scenario and
use the optionalVariable1 and optionalVariable2 values as needed.
*/
});
}
else {
// Insert plain text into the body.
item.body.setSelectedDataAsync(
"Kindly note we now open 7 days a week.",
{ coercionType: Office.CoercionType.Text, asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
(asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
/*
Run additional operations appropriate to your scenario and
use the optionalVariable1 and optionalVariable2 values as needed.
*/
});
}
});
}
Einfügen von Daten am Anfang des Elementtexts
Alternativ können Sie verwenden prependAsync , um Daten am Anfang des Elementtexts einzufügen und die aktuelle Cursorposition zu ignorieren. Anders als der Einfügepunkt, prependAsync und setSelectedDataAsync verhalten sich auf ähnliche Weise. Sie müssen zunächst den Typ des Nachrichtentexts überprüfen, um zu vermeiden, dass html-Daten einer Nachricht im Textformat vorangestellt werden. Übergeben Sie dann die Datenzeichenfolge, die im Text- oder HTML-Format vorangestellt werden soll.prependAsync Die maximal zulässige Anzahl Zeichen, die Sie mit einem Mal voranstellen können, ist auf 1000000 Zeichen beschränkt.
Der folgende JavaScript-Code ruft zuerst auf getTypeAsync , um den Typ des Elementtexts zu überprüfen. Anschließend werden die Daten je nach Typ als HTML oder Text oben im Textkörper eingefügt.
let item;
// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
if (info.host === Office.HostType.Outlook) {
item = Office.context.mailbox.item;
prependItemBody();
}
});
// Prepends data to the body of the item being composed.
function prependItemBody() {
// Identify the body type of the mail item.
item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
// Prepend data of the appropriate type to the body.
if (asyncResult.value === Office.CoercionType.Html) {
// Prepend HTML to the body.
item.body.prependAsync(
'<b>Greetings!</b>',
{ coercionType: Office.CoercionType.Html, asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
(asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
/*
Run additional operations appropriate to your scenario and
use the optionalVariable1 and optionalVariable2 values as needed.
*/
});
}
else {
// Prepend plain text to the body.
item.body.prependAsync(
'Greetings!',
{ coercionType: Office.CoercionType.Text, asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
(asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
/*
Run additional operations appropriate to your scenario and
use the optionalVariable1 and optionalVariable2 values as needed.
*/
});
}
});
}
Festlegen des Nachrichtenantwortentexts in Outlook im Web oder dem neuen Outlook unter Windows
In Outlook im Web und dem neuen Outlook unter Windows können Benutzer ihre Nachrichten als Unterhaltungen oder einzelne Nachrichten unter Einstellungen>E-Mail-Layout-Nachricht>>organization organisieren. Diese Einstellung wirkt sich darauf aus, wie viel Text einer Nachricht dem Benutzer angezeigt wird, insbesondere in Unterhaltungsthreads mit mehreren Nachrichten. Je nach Einstellung wird der Inhalt des gesamten Konversationsthreads oder nur der aktuellen Nachricht angezeigt. Weitere Informationen zur Einstellung Nachrichtenorganisation finden Sie unter Ändern der Anzeige der Nachrichtenliste in Outlook.
Wenn Sie in einer Nachrichtenantwort aufrufen Office.context.mailbox.item.body.setAsync , wird der gesamte Text eines Konversationsthreads durch den von Ihnen angegebenen Text ersetzt. Wenn Sie die Einstellung Nachrichtenorganisation des Benutzers berücksichtigen und nur den Text der aktuellen Antwort ersetzen möchten, können Sie die Option bodyMode im setAsync Anruf angeben. In der folgenden Tabelle sind die bodyMode Konfigurationen und die Auswirkungen auf den festzulegenden Nachrichtentext aufgeführt.
| bodyMode-Konfiguration |
Auswirkung auf den Körper |
bodyMode ist im setAsync Aufruf nicht angegeben. |
Der gesamte Text des Konversationsthreads wird ersetzt. Dies gilt auch, wenn die Nachrichten eines Benutzers nach Unterhaltung organisiert sind. In diesem Szenario wird die Einstellung des Benutzers vorübergehend in Einzelne Nachrichten geändert: Nachrichten nicht gruppieren>Nur eine einzelne Nachricht oder E-Mail als einzelne Nachrichten während des Anrufs setAsync anzeigen. Dem Benutzer wird eine Benachrichtigung angezeigt, um sie auf diese Änderung hinzuweisen. Sobald der Aufruf abgeschlossen ist, wird die Einstellung des Benutzers wiederhergestellt. |
bodyMode ist auf festgelegt. Office.MailboxEnums.BodyMode.FullBody |
Der gesamte Text des Konversationsthreads wird ersetzt. Dies gilt auch, wenn die Nachrichten eines Benutzers nach Unterhaltung organisiert sind. In diesem Szenario wird die Einstellung des Benutzers vorübergehend in Einzelne Nachrichten geändert: Nachrichten nicht gruppieren>Nur eine einzelne Nachricht oder E-Mail als einzelne Nachrichten während des Anrufs setAsync anzeigen. Dem Benutzer wird eine Benachrichtigung angezeigt, um sie auf diese Änderung hinzuweisen. Sobald der Aufruf abgeschlossen ist, wird die Einstellung des Benutzers wiederhergestellt. |
bodyMode ist auf festgelegt. Office.MailboxEnums.BodyMode.HostConfig |
Wenn Nachrichtenorganisation auf Nachrichten nach Unterhaltung> gruppierenAlle Nachrichten aus der ausgewählten Unterhaltung oder E-Mail-Adresse gruppiert nach Unterhaltung>neu/ oben anzeigen Festgelegt istNeu am unteren Rand, wird nur der Textkörper der aktuellen Antwort ersetzt.
Wenn Nachrichtenorganisation auf Einzelne Nachrichten: Nachrichten nicht gruppierenNur eine einzelne Nachricht gruppieren > oder E-Mail als einzelne Nachrichten anzeigen festgelegt ist, wird der gesamte Text des Unterhaltungsthreads ersetzt. |
Hinweis
Die bodyMode Option wird in Outlook unter Windows (klassisch), auf Mac und auf mobilen Geräten ignoriert.
Im folgenden Beispiel wird die bodyMode Option zum Berücksichtigen der Nachrichteneinstellung des Benutzers angegeben.
Office.context.mailbox.item.body.setAsync(
"This text replaces the body of the message.",
{
coercionType: Office.CoercionType.Html,
bodyMode: Office.MailboxEnums.BodyMode.HostConfig
},
(bodyResult) => {
if (bodyResult.status === Office.AsyncResultStatus.Failed) {
console.log(`Failed to set body: ${bodyResult.error.message}`);
return;
}
console.log("Successfully replaced the body of the message.");
}
);