Office.Body interface
body オブジェクトは、メッセージまたは予定の内容を追加および更新するためのメソッドを提供します。 選択した項目の body プロパティで返されます。
注釈
HTML テーブルの罫線の色に関する既知の問題
Outlook on Windows: Compose モードで HTML テーブルでさまざまなセルの罫線を異なる色に設定している場合、セルの罫線に期待される色が反映されない可能性があります。 既知の動作については、「 OfficeDev/office-js issue #1818」を参照してください。
最小アクセス許可レベル: アイテムの読み取り
適用できる Outlook モード: Composeまたは読み取り
例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/add-inline-base64-image.yaml
const mailItem = Office.context.mailbox.item;
const base64String =
"iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAnUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN0S+bUAAAAMdFJOUwAQIDBAUI+fr7/P7yEupu8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF8SURBVGhD7dfLdoMwDEVR6Cspzf9/b20QYOthS5Zn0Z2kVdY6O2WULrFYLBaLxd5ur4mDZD14b8ogWS/dtxV+dmx9ysA2QUj9TQRWv5D7HyKwuIW9n0vc8tkpHP0W4BOg3wQ8wtlvA+PC1e8Ao8Ld7wFjQtHvAiNC2e8DdqHqKwCrUPc1gE1AfRVgEXBfB+gF0lcCWoH2tYBOYPpqQCNwfT3QF9i+AegJfN8CtAWhbwJagtS3AbIg9o2AJMh9M5C+SVGBvx6zAfmT0r+Bv8JMwP4kyFPir+cswF5KL3WLv14zAFBCLf56Tw9cparFX4upgaJUtPhrOS1QlY5W+vWTXrGgBFB/b72ev3/0igUdQPppP/nfowfKUUEFcP207y/yxKmgAYQ+PywoAFOfCH3A2MdCFzD3kdADBvq10AGG+pXQBgb7pdAEhvuF0AIc/VtoAK7+JciAs38KIuDugyAC/v4hiMCE/i7IwLRBsh68N2WQjMVisVgs9i5bln8LGScNcCrONQAAAABJRU5ErkJggg==";
// Get the current body of the message or appointment.
mailItem.body.getAsync(Office.CoercionType.Html, (bodyResult) => {
if (bodyResult.status === Office.AsyncResultStatus.Succeeded) {
// Insert the Base64-encoded image to the beginning of the body.
const options = { isInline: true, asyncContext: bodyResult.value };
mailItem.addFileAttachmentFromBase64Async(base64String, "sample.png", options, (attachResult) => {
if (attachResult.status === Office.AsyncResultStatus.Succeeded) {
let body = attachResult.asyncContext;
body = body.replace("<p class=MsoNormal>", `<p class=MsoNormal><img src="cid:sample.png">`);
mailItem.body.setAsync(body, { coercionType: Office.CoercionType.Html }, (setResult) => {
if (setResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("Inline Base64-encoded image added to the body.");
} else {
console.log(setResult.error.message);
}
});
} else {
console.log(attachResult.error.message);
}
});
} else {
console.log(bodyResult.error.message);
}
});
メソッド
get |
コンテンツの形式が HTML とテキストのどちらであるかを示す値を取得します。 |
get |
コンテンツの形式が HTML とテキストのどちらであるかを示す値を取得します。 |
prepend |
アイテム本文の先頭に指定の内容を追加します。 |
prepend |
アイテム本文の先頭に指定の内容を追加します。 |
set |
本文の選択部分を、指定のテキストに置き換えます。 メソッドは |
set |
本文の選択部分を、指定のテキストに置き換えます。 メソッドは |
メソッドの詳細
getTypeAsync(options, callback)
コンテンツの形式が HTML とテキストのどちらであるかを示す値を取得します。
getTypeAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;
パラメーター
- options
- Office.AsyncContextOptions
次のプロパティの 1 つ以上を含むオブジェクト リテラル:- asyncContext
: 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。
- callback
-
(asyncResult: Office.AsyncResult<Office.CoercionType>) => void
省略可能。 メソッドが完了すると、 パラメーターで callback
渡された関数が、 型 Office.AsyncResult
の 1 つのパラメーターで呼び出されます。 コンテンツ タイプは、 プロパティのasyncResult.value
値の CoercionType
1 つとして返されます。
戻り値
void
注釈
最小アクセス許可レベル: アイテムの読み取り
適用される Outlook モード: Compose
重要: Outlook on Android および iOS では、このメソッドはメッセージ Compose モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイス上の Outlook でサポートされている Outlook JavaScript API」を参照してください。
例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/get-body-format.yaml
// Get the mail item's body format (plain text or HTML) and log it to the console.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
console.log("Body format: " + asyncResult.value);
});
getTypeAsync(callback)
コンテンツの形式が HTML とテキストのどちらであるかを示す値を取得します。
getTypeAsync(callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;
パラメーター
- callback
-
(asyncResult: Office.AsyncResult<Office.CoercionType>) => void
省略可能。 メソッドが完了すると、 パラメーターで callback
渡された関数が、 型 Office.AsyncResult
の 1 つのパラメーターで呼び出されます。 コンテンツ タイプは、 プロパティのasyncResult.value
値の CoercionType
1 つとして返されます。
戻り値
void
注釈
最小アクセス許可レベル: アイテムの読み取り
適用される Outlook モード: Compose
重要: Outlook on Android および iOS では、このメソッドはメッセージ Compose モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイス上の Outlook でサポートされている Outlook JavaScript API」を参照してください。
prependAsync(data, options, callback)
アイテム本文の先頭に指定の内容を追加します。
prependAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
パラメーター
- data
-
string
本文の先頭に挿入する文字列。 文字列の最大長は 1,000,000 文字です。
次のプロパティの 1 つ以上を含むオブジェクト リテラル:- asyncContext
: 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。
coercionType
: 本文に必要な形式。 パラメーター内の文字列は、この形式に変換されます。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
省略可能。 メソッドが完了すると、 パラメーターで callback
渡された関数が、 型 Office.AsyncResult
の 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error
プロパティに表示されます。
戻り値
void
注釈
最小アクセス許可レベル: 項目の読み取り/書き込み
適用される Outlook モード: Compose
推奨: を呼び出 getTypeAsync
し、返された値を パラメーターに options.coercionType
渡します。
重要:
コンテンツの先頭が追加された後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 Outlook on the webと Windows (新規およびクラシック) では、カーソル位置は本文の既存のコンテンツでも同じままです。 たとえば、カーソルが呼び出しの前に本文の先頭に
prependAsync
配置された場合、前に追加されたコンテンツと、呼び出し後の本文の既存のコンテンツの間にカーソルが表示されます。 Outlook on Mac では、カーソル位置は保持されません。 呼び出し後にprependAsync
カーソルが消え、ユーザーがメール アイテムの本文で何かを選択した場合にのみ再表示されます。HTML 形式の本文を操作する場合は、クライアントがレンダリング エンジンで効率的にレンダリングできるように、 に
prependAsync
渡される値を変更する可能性があることに注意することが重要です。 つまり、(メールボックス 1.3 で導入された) メソッドのBody.getAsync
後続の呼び出しから返される値には、前prependAsync
の呼び出しで渡された正確な値が必ずしも含まれていないことを意味します。HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を
id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。Outlook on Android および iOS では、このメソッドはメッセージ Compose モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイス上の Outlook でサポートされている Outlook JavaScript API」を参照してください。
SVG ファイルはサポートされていません。 代わりに JPG または PNG ファイルを使用します。
メソッドは
prependAsync
インライン CSS をサポートしていません。 代わりに、内部 CSS または外部 CSS を使用します。
エラー:
-
DataExceedsMaximumSize
: データ パラメーターが 1,000,000 文字を超えています。
例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/prepend-text-to-item-body.yaml
/* This snippet adds text to the beginning of the message or appointment's body.
When prepending a link in HTML markup to the body, you can disable the online link preview by setting the anchor tag's id attribute to "LPNoLP". For example, '<a id="LPNoLP" href="https://www.contoso.com">Click here!</a>'.
*/
const text = $("#text-field").val().toString();
// It's recommended to call getTypeAsync and pass its returned value to the options.coercionType parameter of the prependAsync call.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
const bodyFormat = asyncResult.value;
Office.context.mailbox.item.body.prependAsync(text, { coercionType: bodyFormat }, (asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
console.log(`"${text}" prepended to the body.`);
});
});
prependAsync(data, callback)
アイテム本文の先頭に指定の内容を追加します。
prependAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
パラメーター
- data
-
string
本文の先頭に挿入する文字列。 文字列の最大長は 1,000,000 文字です。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
省略可能。 メソッドが完了すると、 パラメーターで callback
渡された関数が、 型 Office.AsyncResult
の 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error
プロパティに表示されます。
戻り値
void
注釈
最小アクセス許可レベル: 項目の読み取り/書き込み
適用される Outlook モード: Compose
推奨: を呼び出 getTypeAsync
し、返された値を パラメーターに options.coercionType
渡します。
重要:
コンテンツの先頭が追加された後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 Outlook on the webと Windows (新規およびクラシック) では、カーソル位置は本文の既存のコンテンツでも同じままです。 たとえば、カーソルが呼び出しの前に本文の先頭に
prependAsync
配置された場合、前に追加されたコンテンツと、呼び出し後の本文の既存のコンテンツの間にカーソルが表示されます。 Outlook on Mac では、カーソル位置は保持されません。 呼び出し後にprependAsync
カーソルが消え、ユーザーがメール アイテムの本文で何かを選択した場合にのみ再表示されます。HTML 形式の本文を操作する場合は、クライアントがレンダリング エンジンで効率的にレンダリングできるように、 に
prependAsync
渡される値を変更する可能性があることに注意することが重要です。 つまり、(メールボックス 1.3 で導入された) メソッドのBody.getAsync
後続の呼び出しから返される値には、前prependAsync
の呼び出しで渡された正確な値が必ずしも含まれていないことを意味します。HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を
id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。Outlook on Android および iOS では、このメソッドはメッセージ Compose モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイス上の Outlook でサポートされている Outlook JavaScript API」を参照してください。
SVG ファイルはサポートされていません。 代わりに JPG または PNG ファイルを使用します。
メソッドは
prependAsync
インライン CSS をサポートしていません。 代わりに、内部 CSS または外部 CSS を使用します。
エラー:
-
DataExceedsMaximumSize
: データ パラメーターが 1,000,000 文字を超えています。
setSelectedDataAsync(data, options, callback)
本文の選択部分を、指定のテキストに置き換えます。
メソッドは setSelectedDataAsync
、指定した文字列を項目の本文のカーソル位置に挿入するか、エディターでテキストが選択されている場合は、選択したテキストを置き換えます。 カーソルが項目の本文に含まれなかった場合、または項目の本文が UI でフォーカスを失った場合は、本文コンテンツの先頭に文字列が挿入されます。 挿入後、カーソルは挿入されたコンテンツの末尾に配置されます。
setSelectedDataAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
パラメーター
- data
-
string
既存の本文を置換する文字列。 文字列の長さは 1,000,000 文字までに制限されています。
次のプロパティの 1 つ以上を含むオブジェクト リテラル:- asyncContext
: 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。
coercionType
: 本文に必要な形式。 パラメーター内の文字列は、この形式に変換されます。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
省略可能。 メソッドが完了すると、 パラメーターで callback
渡された関数が、 型 Office.AsyncResult
の 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error
プロパティに表示されます。
戻り値
void
注釈
最小アクセス許可レベル: 項目の読み取り/書き込み
適用される Outlook モード: Compose
推奨: を呼び出 getTypeAsync
し、返された値をパラメーターに options.coercionType
渡します。
* 重要:
HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を
id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。SVG ファイルはサポートされていません。 代わりに JPG または PNG ファイルを使用します。
メソッドは
setSelectedDataAsync
インライン CSS をサポートしていません。 代わりに、内部 CSS または外部 CSS を使用します。
エラー:
DataExceedsMaximumSize
data
: パラメーターが 1,000,000 文字を超えています。InvalidFormatError
options.coercionType
: パラメーターは にOffice.CoercionType.Html
設定され、メッセージ本文はプレーン テキストです。
例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/replace-selected-text.yaml
/* This snippet replaces selected text in a message or appointment's body with specified text.
If you want to use a link in HTML markup as a value of the setSelectedDataAsync call's data parameter, you can disable online link preview by setting the anchor tag's id attribute to "LPNoLP". For example, '<a id="LPNoLP" href="https://www.contoso.com">Click here!</a>'.
*/
const text = $("#text-field").val().toString();
// It's recommended to call getTypeAsync and pass its returned value to the options.coercionType parameter of the prependAsync call.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
const bodyFormat = asyncResult.value;
Office.context.mailbox.item.body.setSelectedDataAsync(text, { coercionType: bodyFormat }, (asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
console.log(`Replaced selected text with "${text}".`);
});
});
setSelectedDataAsync(data, callback)
本文の選択部分を、指定のテキストに置き換えます。
メソッドは setSelectedDataAsync
、指定した文字列を項目の本文のカーソル位置に挿入するか、エディターでテキストが選択されている場合は、選択したテキストを置き換えます。 カーソルが項目の本文に含まれなかった場合、または項目の本文が UI でフォーカスを失った場合は、本文コンテンツの先頭に文字列が挿入されます。 挿入後、カーソルは挿入されたコンテンツの末尾に配置されます。
setSelectedDataAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
パラメーター
- data
-
string
既存の本文を置換する文字列。 文字列の長さは 1,000,000 文字までに制限されています。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
省略可能。 メソッドが完了すると、 パラメーターで callback
渡された関数が、 型 Office.AsyncResult
の 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error
プロパティに表示されます。
戻り値
void
注釈
最小アクセス許可レベル: 項目の読み取り/書き込み
適用される Outlook モード: Compose
推奨: を呼び出 getTypeAsync
し、返された値をパラメーターに options.coercionType
渡します。
* 重要:
HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を
id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。SVG ファイルはサポートされていません。 代わりに JPG または PNG ファイルを使用します。
メソッドは
setSelectedDataAsync
インライン CSS をサポートしていません。 代わりに、内部 CSS または外部 CSS を使用します。
エラー:
DataExceedsMaximumSize
data
: パラメーターが 1,000,000 文字を超えています。InvalidFormatError
options.coercionType
: パラメーターは にOffice.CoercionType.Html
設定され、メッセージ本文はプレーン テキストです。
Office Add-ins