Office.Body interface
body オブジェクトは、メッセージまたは予定の内容を追加および更新するためのメソッドを提供します。 選択した項目の body プロパティで返されます。
注釈
HTML テーブルの罫線の色に関する既知の問題
Outlook on Windows: 新規作成モードの HTML テーブルでさまざまなセル罫線を異なる色に設定している場合、セルの罫線に期待される色が反映されない可能性があります。 既知の動作については、「 OfficeDev/office-js issue #1818」を参照してください。
最小アクセス許可レベル: アイテムの読み取り
適用できる Outlook モード: 新規作成または読み取り
メソッド
append |
を追加すると、指定したコンテンツを、署名の後のアイテム本文の末尾に送信します。 を使用 重要: 送信時機能 が追加オン送信で実装されている場合は、次が適用されます。
推奨: を呼び出 注: 前 |
append |
を追加すると、指定したコンテンツを、署名の後のアイテム本文の末尾に送信します。 を使用 重要: 送信時機能 が追加オン送信で実装されている場合は、次が適用されます。
推奨: を呼び出 注: 前 |
get |
現在の本文を指定された形式で返します。 このメソッドは、 で |
get |
現在の本文を指定された形式で返します。 このメソッドは、 で |
get |
コンテンツの形式が HTML とテキストのどちらであるかを示す値を取得します。 |
get |
コンテンツの形式が HTML とテキストのどちらであるかを示す値を取得します。 |
prepend |
アイテム本文の先頭に指定の内容を追加します。 |
prepend |
アイテム本文の先頭に指定の内容を追加します。 |
set |
本文全体を指定されたテキストに置換します。 |
set |
本文全体を指定されたテキストに置換します。 |
set |
本文の選択部分を、指定のテキストに置き換えます。 メソッドは HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を 推奨: を呼び出 |
set |
本文の選択部分を、指定のテキストに置き換えます。 メソッドは HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を 推奨: を呼び出 |
メソッドの詳細
appendOnSendAsync(data, options, callback)
を追加すると、指定したコンテンツを、署名の後のアイテム本文の末尾に送信します。
を使用 appendOnSendAsync
するには、マニフェストで補助アクセス許可を指定する必要があります。 詳細はマニフェストの種類によって異なります。 「 Outlook アドインのアクセス許可について」を参照してください。 追加オン送信とその構成の詳細については、「 Outlook アドインで追加送信を実装する」を参照してください。
重要: 送信時機能 が追加オン送信で実装されている場合は、次が適用されます。
ユーザーがマニフェストで を使用して送信時機能を実装するアドインを
ItemSend
実行している場合は、送信時機能の前に追加送信が実行されます。アドインで送信時機能とハンドラー内の呼び出し
appendOnSendAsync
がItemSend
実装されている場合、このシナリオはサポートされていないため、appendOnSendAsync
呼び出しからエラーが返されます。
推奨: を呼び出 getTypeAsync
し、返された値をパラメーターに options.coercionType
渡します。
注: 前appendOnSendAsync
の呼び出しからデータを消去するには、 パラメーターを にnull
設定して、もう一度data
呼び出すことができます。
appendOnSendAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
パラメーター
- data
-
string
本文の末尾に追加する文字列。 文字列は 5,000 文字に制限されています。
次のプロパティの 1 つ以上を含むオブジェクト リテラル:- asyncContext
: 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。 coercionType
: 追加するデータの目的の形式。 パラメーター内の文字列は、この形式に変換されます。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
オプション。 メソッドが完了すると、 パラメーターで callback
渡された関数が、 型 Office.AsyncResult
の 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error
プロパティに表示されます。
戻り値
void
注釈
最小アクセス許可レベル: 項目の読み取り/書き込み
適用できる Outlook モード: 新規作成
エラー:
DataExceedsMaximumSize
data
: パラメーターが 5,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/append-text-on-send.yaml
// This snippet appends text to the end of the message or appointment's body once it's sent.
const text = $("#text-field").val();
// It's recommended to call getTypeAsync and pass its returned value to the options.coercionType parameter of the appendOnSendAsync 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.appendOnSendAsync(text, { coercionType: bodyFormat }, (asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message);
return;
}
console.log(`"${text}" will be appended to the body once the message or appointment is sent. Send the mail item to test this feature.`);
});
});
appendOnSendAsync(data, callback)
を追加すると、指定したコンテンツを、署名の後のアイテム本文の末尾に送信します。
を使用 appendOnSendAsync
するには、マニフェストで補助アクセス許可を指定する必要があります。 詳細はマニフェストの種類によって異なります。 「 Outlook アドインのアクセス許可について」を参照してください。 追加オン送信とその構成の詳細については、「 Outlook アドインで追加送信を実装する」を参照してください。
重要: 送信時機能 が追加オン送信で実装されている場合は、次が適用されます。
ユーザーがマニフェストで を使用して送信時機能を実装するアドインを
ItemSend
実行している場合は、送信時機能の前に追加送信が実行されます。アドインで送信時機能とハンドラー内の呼び出し
appendOnSendAsync
がItemSend
実装されている場合、このシナリオはサポートされていないため、appendOnSendAsync
呼び出しからエラーが返されます。
推奨: を呼び出 getTypeAsync
し、返された値をパラメーターに options.coercionType
渡します。
注: 前appendOnSendAsync
の呼び出しからデータを消去するには、 パラメーターを にnull
設定して、もう一度data
呼び出すことができます。
appendOnSendAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
パラメーター
- data
-
string
本文の末尾に追加する文字列。 文字列は 5,000 文字に制限されています。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
オプション。 メソッドが完了すると、 パラメーターで callback
渡された関数が、 型 Office.AsyncResult
の 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error
プロパティに表示されます。
戻り値
void
注釈
最小アクセス許可レベル: 項目の読み取り/書き込み
適用できる Outlook モード: 新規作成
エラー:
DataExceedsMaximumSize
data
: パラメーターが 5,000 文字を超えています。InvalidFormatError
: パラメーターはoptions.coercionType
にOffice.CoercionType.Html
設定されていますが、メッセージ本文はプレーン テキストです。
getAsync(coercionType, options, callback)
現在の本文を指定された形式で返します。
このメソッドは、 で coercionType
指定された形式で現在の本文全体を返します。
getAsync(coercionType: Office.CoercionType | string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
パラメーター
- coercionType
-
Office.CoercionType | string
返される本文の形式です。
- options
- Office.AsyncContextOptions
次のプロパティの 1 つ以上を含むオブジェクト リテラル:- asyncContext
: 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
オプション。 メソッドが完了すると、パラメーターで callback
渡された関数が Office.AsyncResult 型の 1 つのパラメーターで呼び出されます。 本文は、 プロパティの要求された形式で asyncResult.value
提供されます。
戻り値
void
注釈
最小アクセス許可レベル: アイテムの読み取り
適用できる Outlook モード: 新規作成または読み取り
重要: HTML 形式の本文を操作する場合、メソッドによって Body.getAsync
返される値が、必ずしもメソッドで Body.setAsync
渡された値とまったく同じとは限らないことに注意してください。 クライアントは、 に渡された値を setAsync
変更して、レンダリング エンジンを使用して効率的にレンダリングできます。
例
// This example gets the body of the item as plain text.
Office.context.mailbox.item.body.getAsync(
"text",
{ asyncContext: "This is passed to the callback" },
function callback(result) {
// Do something with the result.
});
// The following is an example of the result parameter passed to the callback function.
{
"value": "TEXT of whole body (including threads below)",
"status": "succeeded",
"asyncContext": "This is passed to the callback"
}
getAsync(coercionType, callback)
現在の本文を指定された形式で返します。
このメソッドは、 で coercionType
指定された形式で現在の本文全体を返します。
getAsync(coercionType: Office.CoercionType | string, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
パラメーター
- coercionType
-
Office.CoercionType | string
返される本文の形式です。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
オプション。 メソッドが完了すると、パラメーターで callback
渡された関数が Office.AsyncResult 型の 1 つのパラメーターで呼び出されます。 本文は、 プロパティの要求された形式で asyncResult.value
提供されます。
戻り値
void
注釈
最小アクセス許可レベル: アイテムの読み取り
適用できる Outlook モード: 新規作成または読み取り
重要: HTML 形式の本文を操作する場合、メソッドによって Body.getAsync
返される値が、必ずしもメソッドで Body.setAsync
渡された値とまったく同じとは限らないことに注意してください。 クライアントは、 に渡された値を setAsync
変更して、レンダリング エンジンを使用して効率的にレンダリングできます。
例
// 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 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 image added to the body.");
} else {
console.log(setResult.error.message);
}
});
} else {
console.log(attachResult.error.message);
}
});
} else {
console.log(bodyResult.error.message);
}
});
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 モード: 新規作成
重要: Outlook on Android および iOS では、このメソッドはメッセージ作成モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 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 モード: 新規作成
重要: Outlook on Android および iOS では、このメソッドはメッセージ作成モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 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 モード: 新規作成
重要:
コンテンツの先頭が追加された後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 Outlook on Windows と Web では、カーソル位置は本文の既存のコンテンツでも同じままです。 たとえば、カーソルが呼び出しの前に本文の先頭に
prependAsync
配置された場合、前に追加されたコンテンツと、呼び出し後の本文の既存のコンテンツの間にカーソルが表示されます。 Outlook on Mac では、カーソル位置は保持されません。 呼び出し後にprependAsync
カーソルが消え、ユーザーがメール アイテムの本文で何かを選択した場合にのみ再表示されます。HTML 形式の本文を操作する場合は、クライアントがレンダリング エンジンで効率的にレンダリングできるように、 に
prependAsync
渡される値を変更する可能性があることに注意することが重要です。 つまり、(メールボックス 1.3 で導入された) メソッドのBody.getAsync
後続の呼び出しから返される値には、前prependAsync
の呼び出しで渡された正確な値が必ずしも含まれていないことを意味します。HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を
id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。Outlook on Android および iOS では、このメソッドはメッセージ作成モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイス上の Outlook でサポートされている Outlook JavaScript API」を参照してください。
推奨: を呼び出 getTypeAsync
し、返された値を パラメーターに options.coercionType
渡します。
エラー:
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="http://www.contoso.com">Click here!</a>'.
*/
const text = $("#text-field").val();
// 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 モード: 新規作成
重要:
コンテンツの先頭が追加された後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 Outlook on Windows と Web では、カーソル位置は本文の既存のコンテンツでも同じままです。 たとえば、カーソルが呼び出しの前に本文の先頭に
prependAsync
配置された場合、前に追加されたコンテンツと、呼び出し後の本文の既存のコンテンツの間にカーソルが表示されます。 Outlook on Mac では、カーソル位置は保持されません。 呼び出し後にprependAsync
カーソルが消え、ユーザーがメール アイテムの本文で何かを選択した場合にのみ再表示されます。HTML 形式の本文を操作する場合は、クライアントがレンダリング エンジンで効率的にレンダリングできるように、 に
prependAsync
渡される値を変更する可能性があることに注意することが重要です。 つまり、(メールボックス 1.3 で導入された) メソッドのBody.getAsync
後続の呼び出しから返される値には、前prependAsync
の呼び出しで渡された正確な値が必ずしも含まれていないことを意味します。HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を
id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。Outlook on Android および iOS では、このメソッドはメッセージ作成モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイス上の Outlook でサポートされている Outlook JavaScript API」を参照してください。
推奨: を呼び出 getTypeAsync
し、返された値を パラメーターに options.coercionType
渡します。
エラー:
DataExceedsMaximumSize
: データ パラメーターが 1,000,000 文字を超えています。
setAsync(data, options, callback)
本文全体を指定されたテキストに置換します。
setAsync(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 モード: 新規作成
重要:
本文が指定されたコンテンツに置き換えられた後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 Outlook on Windows では、カーソルはメール アイテムの本文の先頭に表示され、Outlook on the webでは、カーソルはメール アイテムの本文の末尾に表示されます。 Outlook on Mac では、カーソル位置は保持されません。 呼び出し後に
prependAsync
カーソルが消え、ユーザーがメール アイテムの本文で何かを選択した場合にのみ再表示されます。HTML 形式の本文を操作する場合は、メソッドによって返される値が、メソッドで
Body.getAsync
Body.setAsync
以前に渡されたものとまったく同じ値であるとは限らないことに注意することが重要です。 クライアントは、 に渡された値をsetAsync
変更して、レンダリング エンジンを使用して効率的にレンダリングできます。HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を
id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。Outlook on Windows および Mac では、アドイン ユーザーは [元に戻す] コマンドを使用してこの操作を元に戻すことができません。
Outlook on Android および iOS では、このメソッドはメッセージ作成モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイス上の Outlook でサポートされている Outlook JavaScript API」を参照してください。
推奨: を呼び出 getTypeAsync
し、返された値を パラメーターに options.coercionType
渡します。
エラー:
DataExceedsMaximumSize
: データ パラメーターが 1,000,000 文字を超えています。InvalidFormatError
options.coercionType
: パラメーターは にOffice.CoercionType.Html
設定され、メッセージ本文はプレーン テキストです。
例
// When including links in HTML markup, you can disable online link preview
// by setting the id attribute on the anchor (<a>) to "LPNoLP".
Office.context.mailbox.item.body.setAsync(
'<a id="LPNoLP" href="http://www.contoso.com">Click here!</a>',
{coercionType: Office.CoercionType.Html},
callback);
Office.context.mailbox.item.body.setAsync(
"<b>(replaces all body, including threads you are replying to that may be on the bottom)</b>",
{ coercionType: "html", asyncContext: "This is passed to the callback" },
function callback(result) {
// Process the result.
});
// The following is an example of the result parameter passed to the callback function.
{
"value":null,
"status": "succeeded",
"asyncContext": "This is passed to the callback"
}
// 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 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 image added to the body.");
} else {
console.log(setResult.error.message);
}
});
} else {
console.log(attachResult.error.message);
}
});
} else {
console.log(bodyResult.error.message);
}
});
setAsync(data, callback)
本文全体を指定されたテキストに置換します。
setAsync(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 モード: 新規作成
重要:
本文が指定されたコンテンツに置き換えられた後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 Outlook on Windows では、カーソルはメール アイテムの本文の先頭に表示され、Outlook on the webでは、カーソルはメール アイテムの本文の末尾に表示されます。 Outlook on Mac では、カーソル位置は保持されません。 呼び出し後に
prependAsync
カーソルが消え、ユーザーがメール アイテムの本文で何かを選択した場合にのみ再表示されます。HTML 形式の本文を操作する場合は、メソッドによって返される値が、メソッドで
Body.getAsync
Body.setAsync
以前に渡されたものとまったく同じ値であるとは限らないことに注意することが重要です。 クライアントは、 に渡された値をsetAsync
変更して、レンダリング エンジンを使用して効率的にレンダリングできます。HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を
id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。Outlook on Windows および Mac では、アドイン ユーザーは [元に戻す] コマンドを使用してこの操作を元に戻すことができません。
Outlook on Android および iOS では、このメソッドはメッセージ作成モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイス上の Outlook でサポートされている Outlook JavaScript API」を参照してください。
推奨: を呼び出 getTypeAsync
し、返された値を パラメーターに options.coercionType
渡します。
エラー:
DataExceedsMaximumSize
: データ パラメーターが 1,000,000 文字を超えています。InvalidFormatError
options.coercionType
: パラメーターは にOffice.CoercionType.Html
設定され、メッセージ本文はプレーン テキストです。
setSelectedDataAsync(data, options, callback)
本文の選択部分を、指定のテキストに置き換えます。
メソッドは setSelectedDataAsync
、指定した文字列を項目の本文のカーソル位置に挿入するか、エディターでテキストが選択されている場合は、選択したテキストを置き換えます。 カーソルが項目の本文に含まれなかった場合、または項目の本文が UI でフォーカスを失った場合は、本文コンテンツの先頭に文字列が挿入されます。 挿入後、カーソルは挿入されたコンテンツの末尾に配置されます。
HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。
推奨: を呼び出 getTypeAsync
し、返された値をパラメーターに options.coercionType
渡します。
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 モード: 新規作成
エラー:
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="http://www.contoso.com">Click here!</a>'.
*/
const text = $("#text-field").val();
// 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 でフォーカスを失った場合は、本文コンテンツの先頭に文字列が挿入されます。 挿入後、カーソルは挿入されたコンテンツの末尾に配置されます。
HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を id
"LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「例」セクションを参照してください)。
推奨: を呼び出 getTypeAsync
し、返された値をパラメーターに options.coercionType
渡します。
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 モード: 新規作成
エラー:
DataExceedsMaximumSize
data
: パラメーターが 1,000,000 文字を超えています。InvalidFormatError
options.coercionType
: パラメーターは にOffice.CoercionType.Html
設定され、メッセージ本文はプレーン テキストです。
フィードバック
フィードバックの送信と表示