次の方法で共有


Office.Body interface

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

注釈

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

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);
  }
});

メソッド

getTypeAsync(options, callback)

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

getTypeAsync(callback)

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

prependAsync(data, options, callback)

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

prependAsync(data, callback)

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

setSelectedDataAsync(data, options, callback)

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

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

setSelectedDataAsync(data, callback)

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

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

メソッドの詳細

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 モード: 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

注釈

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

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

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

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 モード: 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

注釈

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

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

適用される 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 文字までに制限されています。

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 モード: 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

注釈

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

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

適用される 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設定され、メッセージ本文はプレーン テキストです。