Office.Body interface

body オブジェクトは、メッセージまたは予定の内容を追加および更新するためのメソッドを提供します。 選択した項目の body プロパティで返されます。

注釈

[ API セット: メールボックス 1.1 ]

HTML テーブルの罫線の色に関する既知の問題

Outlook on Windows: 新規作成モードの HTML テーブルでさまざまなセル罫線を異なる色に設定している場合、セルの罫線に期待される色が反映されない可能性があります。 既知の動作については、「 OfficeDev/office-js issue #1818」を参照してください。

最小アクセス許可レベル: アイテムの読み取り

適用できる Outlook モード: 新規作成または読み取り

メソッド

appendOnSendAsync(data, options, callback)

を追加すると、指定したコンテンツを、署名の後のアイテム本文の末尾に送信します。

を使用 appendOnSendAsyncするには、マニフェストで補助アクセス許可を指定する必要があります。 詳細はマニフェストの種類によって異なります。 「 Outlook アドインのアクセス許可について」を参照してください。 追加オン送信とその構成の詳細については、「 Outlook アドインで追加送信を実装する」を参照してください。

重要: 送信時機能 が追加オン送信で実装されている場合は、次が適用されます。

  • ユーザーがマニフェストで を使用して送信時機能を実装するアドインを ItemSend 実行している場合は、送信時機能の前に追加送信が実行されます。

  • アドインで送信時機能とハンドラー内の呼び出し appendOnSendAsyncItemSend 実装されている場合、このシナリオはサポートされていないため、 appendOnSendAsync 呼び出しからエラーが返されます。

推奨: を呼び出 getTypeAsync し、返された値をパラメーターに options.coercionType 渡します。

: 前appendOnSendAsyncの呼び出しからデータを消去するには、 パラメーターを にnull設定して、もう一度data呼び出すことができます。

appendOnSendAsync(data, callback)

を追加すると、指定したコンテンツを、署名の後のアイテム本文の末尾に送信します。

を使用 appendOnSendAsyncするには、マニフェストで補助アクセス許可を指定する必要があります。 詳細はマニフェストの種類によって異なります。 「 Outlook アドインのアクセス許可について」を参照してください。 追加オン送信とその構成の詳細については、「 Outlook アドインで追加送信を実装する」を参照してください。

重要: 送信時機能 が追加オン送信で実装されている場合は、次が適用されます。

  • ユーザーがマニフェストで を使用して送信時機能を実装するアドインを ItemSend 実行している場合は、送信時機能の前に追加送信が実行されます。

  • アドインで送信時機能とハンドラー内の呼び出し appendOnSendAsyncItemSend 実装されている場合、このシナリオはサポートされていないため、 appendOnSendAsync 呼び出しからエラーが返されます。

推奨: を呼び出 getTypeAsync し、返された値をパラメーターに options.coercionType 渡します。

: 前appendOnSendAsyncの呼び出しからデータを消去するには、 パラメーターを にnull設定して、もう一度data呼び出すことができます。

getAsync(coercionType, options, callback)

現在の本文を指定された形式で返します。

このメソッドは、 で coercionType指定された形式で現在の本文全体を返します。

getAsync(coercionType, callback)

現在の本文を指定された形式で返します。

このメソッドは、 で coercionType指定された形式で現在の本文全体を返します。

getTypeAsync(options, callback)

コンテンツの形式が HTML とテキストのどちらであるかを示す値を取得します。

getTypeAsync(callback)

コンテンツの形式が HTML とテキストのどちらであるかを示す値を取得します。

prependAsync(data, options, callback)

アイテム本文の先頭に指定の内容を追加します。

prependAsync(data, callback)

アイテム本文の先頭に指定の内容を追加します。

setAsync(data, options, callback)

本文全体を指定されたテキストに置換します。

setAsync(data, callback)

本文全体を指定されたテキストに置換します。

setSelectedDataAsync(data, options, callback)

本文の選択部分を、指定のテキストに置き換えます。

メソッドは setSelectedDataAsync 、指定した文字列を項目の本文のカーソル位置に挿入するか、エディターでテキストが選択されている場合は、選択したテキストを置き換えます。 カーソルが項目の本文に含まれなかった場合、または項目の本文が UI でフォーカスを失った場合は、本文コンテンツの先頭に文字列が挿入されます。 挿入後、カーソルは挿入されたコンテンツの末尾に配置されます。

HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を id "LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「」セクションを参照してください)。

推奨: を呼び出 getTypeAsync し、返された値をパラメーターに options.coercionType 渡します。

setSelectedDataAsync(data, callback)

本文の選択部分を、指定のテキストに置き換えます。

メソッドは setSelectedDataAsync 、指定した文字列を項目の本文のカーソル位置に挿入するか、エディターでテキストが選択されている場合は、選択したテキストを置き換えます。 カーソルが項目の本文に含まれなかった場合、または項目の本文が UI でフォーカスを失った場合は、本文コンテンツの先頭に文字列が挿入されます。 挿入後、カーソルは挿入されたコンテンツの末尾に配置されます。

HTML マークアップにリンクを含める場合は、アンカー (a>) の属性を id "LPNoLP" に設定することで、オンライン リンク プレビューを無効にすることができます (<サンプルについては、「」セクションを参照してください)。

推奨: を呼び出 getTypeAsync し、返された値をパラメーターに options.coercionType 渡します。

メソッドの詳細

appendOnSendAsync(data, options, callback)

を追加すると、指定したコンテンツを、署名の後のアイテム本文の末尾に送信します。

を使用 appendOnSendAsyncするには、マニフェストで補助アクセス許可を指定する必要があります。 詳細はマニフェストの種類によって異なります。 「 Outlook アドインのアクセス許可について」を参照してください。 追加オン送信とその構成の詳細については、「 Outlook アドインで追加送信を実装する」を参照してください。

重要: 送信時機能 が追加オン送信で実装されている場合は、次が適用されます。

  • ユーザーがマニフェストで を使用して送信時機能を実装するアドインを ItemSend 実行している場合は、送信時機能の前に追加送信が実行されます。

  • アドインで送信時機能とハンドラー内の呼び出し appendOnSendAsyncItemSend 実装されている場合、このシナリオはサポートされていないため、 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 文字に制限されています。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

次のプロパティの 1 つ以上を含むオブジェクト リテラル:- asyncContext: 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。 coercionType: 追加するデータの目的の形式。 パラメーター内の文字列は、この形式に変換されます。

callback

(asyncResult: Office.AsyncResult<void>) => void

省略可能です。 メソッドが完了すると、 パラメーターで callback 渡された関数が、 型 Office.AsyncResultの 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error プロパティに表示されます。

戻り値

void

注釈

[ API セット: メールボックス 1.9 ]

最小アクセス許可レベル: 項目の読み取り/書き込み

適用できる Outlook モード: 新規作成

エラー:

  • DataExceedsMaximumSizedata: パラメーターが 5,000 文字を超えています。

  • InvalidFormatError: パラメーターは options.coercionTypeOffice.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 実行している場合は、送信時機能の前に追加送信が実行されます。

  • アドインで送信時機能とハンドラー内の呼び出し appendOnSendAsyncItemSend 実装されている場合、このシナリオはサポートされていないため、 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

注釈

[ API セット: メールボックス 1.9 ]

最小アクセス許可レベル: 項目の読み取り/書き込み

適用できる Outlook モード: 新規作成

エラー:

  • DataExceedsMaximumSizedata: パラメーターが 5,000 文字を超えています。

  • InvalidFormatError: パラメーターは options.coercionTypeOffice.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

注釈

[ API セット: メールボックス 1.3 ]

最小アクセス許可レベル: アイテムの読み取り

適用できる 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

注釈

[ API セット: メールボックス 1.3 ]

最小アクセス許可レベル: アイテムの読み取り

適用できる 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

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: アイテムの読み取り

適用できる 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

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: アイテムの読み取り

適用できる 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 文字です。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

次のプロパティの 1 つ以上を含むオブジェクト リテラル:- asyncContext: 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。 coercionType: 本文に必要な形式。 パラメーター内の文字列は、この形式に変換されます。

callback

(asyncResult: Office.AsyncResult<void>) => void

省略可能です。 メソッドが完了すると、 パラメーターで callback 渡された関数が、 型 Office.AsyncResultの 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error プロパティに表示されます。

戻り値

void

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 項目の読み取り/書き込み

適用できる Outlook モード: 新規作成

重要:

  • コンテンツの先頭が追加された後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 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 では、このメソッドはメッセージ作成モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 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

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 項目の読み取り/書き込み

適用できる Outlook モード: 新規作成

重要:

  • コンテンツの先頭が追加された後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 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 では、このメソッドはメッセージ作成モードではサポートされていません。 予定オーガナイザー モードのみがサポートされています。 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 文字までに制限されています。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

次のプロパティの 1 つ以上を含むオブジェクト リテラル:- asyncContext: 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。 coercionType: 本文に必要な形式。 パラメーター内の文字列は、この形式に変換されます。

callback

(asyncResult: Office.AsyncResult<void>) => void

省略可能です。 メソッドが完了すると、パラメーターで callback 渡された関数が Office.AsyncResult 型の 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error プロパティに表示されます。

戻り値

void

注釈

[ API セット: メールボックス 1.3 ]

最小アクセス許可レベル: 項目の読み取り/書き込み

適用できる Outlook モード: 新規作成

重要:

  • 本文が指定されたコンテンツに置き換えられた後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 Outlook on Windows では、カーソルはメール アイテムの本文の先頭に表示され、Outlook on the webでは、カーソルはメール アイテムの本文の末尾に表示されます。 Outlook on Mac では、カーソル位置は保持されません。 呼び出し後に prependAsync カーソルが消え、ユーザーがメール アイテムの本文で何かを選択した場合にのみ再表示されます。

  • HTML 形式の本文を操作する場合は、メソッドによって返される値が、メソッドでBody.getAsyncBody.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 文字を超えています。

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

注釈

[ API セット: メールボックス 1.3 ]

最小アクセス許可レベル: 項目の読み取り/書き込み

適用できる Outlook モード: 新規作成

重要:

  • 本文が指定されたコンテンツに置き換えられた後、カーソルの位置は、アドインが実行されているクライアントによって異なります。 Outlook on Windows では、カーソルはメール アイテムの本文の先頭に表示され、Outlook on the webでは、カーソルはメール アイテムの本文の末尾に表示されます。 Outlook on Mac では、カーソル位置は保持されません。 呼び出し後に prependAsync カーソルが消え、ユーザーがメール アイテムの本文で何かを選択した場合にのみ再表示されます。

  • HTML 形式の本文を操作する場合は、メソッドによって返される値が、メソッドでBody.getAsyncBody.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 文字を超えています。

  • InvalidFormatErroroptions.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 文字までに制限されています。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

次のプロパティの 1 つ以上を含むオブジェクト リテラル:- asyncContext: 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。 coercionType: 本文に必要な形式。 パラメーター内の文字列は、この形式に変換されます。

callback

(asyncResult: Office.AsyncResult<void>) => void

省略可能です。 メソッドが完了すると、 パラメーターで callback 渡された関数が、 型 Office.AsyncResultの 1 つのパラメーターで呼び出されます。 検出されたすべてのエラーは asyncResult.error プロパティに表示されます。

戻り値

void

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 項目の読み取り/書き込み

適用できる Outlook モード: 新規作成

エラー:

  • DataExceedsMaximumSizedata: パラメーターが 1,000,000 文字を超えています。

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

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 項目の読み取り/書き込み

適用できる Outlook モード: 新規作成

エラー:

  • DataExceedsMaximumSizedata: パラメーターが 1,000,000 文字を超えています。

  • InvalidFormatErroroptions.coercionType: パラメーターは にOffice.CoercionType.Html設定され、メッセージ本文はプレーン テキストです。