Поделиться через


Office.Body interface

Основной объект предоставляет методы для добавления и обновления содержимого сообщения или встречи. Он возвращается в свойстве body выбранного элемента.

Комментарии

[ Набор API: Почтовый ящик 1.1 ]

Известная проблема с цветами границ таблицы HTML

Outlook в Windows. Если в html-таблице в режиме Compose заданы разные цвета границ ячеек, границы ячейки могут не отражать ожидаемый цвет. Сведения об известном поведении см . в статье OfficeDev/office-js issue No 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);
  }
});

Методы

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 вставляет указанную строку в положение курсора в тексте элемента или, если текст выделен в редакторе, он заменяет выделенный текст. Если указатель не появлялся в основном тексте элемента, или элемент потерял фокус в интерфейсе, строка вставляется в начало основного текста. После вставки курсор помещается в конец вставленного содержимого.

setSelectedDataAsync(data, callback)

Заменяет выделенный фрагмент в основном тексте на заданный текст.

Метод setSelectedDataAsync вставляет указанную строку в положение курсора в тексте элемента или, если текст выделен в редакторе, он заменяет выделенный текст. Если указатель не появлялся в основном тексте элемента, или элемент потерял фокус в интерфейсе, строка вставляется в начало основного текста. После вставки курсор помещается в конец вставленного содержимого.

Сведения о методе

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

Литерал объекта, содержащий одно или несколько следующих свойств:- asyncContext: разработчики могут предоставить любой объект, к которому они хотят получить доступ в функции обратного вызова.

callback

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

Необязательный параметр. После завершения метода функция, переданная в callback параметре, вызывается с одним параметром типа Office.AsyncResult. Текст предоставляется в запрошенном формате в свойстве asyncResult.value .

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.3 ]

Минимальный уровень разрешений: чтение элемента

Применимый режим Outlook: Compose или чтение

Важно!

  • При работе с текстами в формате HTML важно отметить, что возвращаемое методом Body.getAsync значение не обязательно будет точно таким же, как ранее переданное в методе Body.setAsync . Клиент может изменить значение, переданное в , setAsync чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки.

  • В Outlook в Интернете и новом Outlook в Windows, если текст содержит форматированные элементы, такие как таблицы, списки и ссылки, укажите Office.CoercionType.Html в вызовеgetAsync. В противном случае может появилось непредвиденное значение, например пустая строка.

Примеры

// 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. Текст предоставляется в запрошенном формате в свойстве asyncResult.value .

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.3 ]

Минимальный уровень разрешений: чтение элемента

Применимый режим Outlook: Compose или чтение

Важно!

  • При работе с текстами в формате HTML важно отметить, что возвращаемое методом Body.getAsync значение не обязательно будет точно таким же, как ранее переданное в методе Body.setAsync . Клиент может изменить значение, переданное в , setAsync чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки.

  • В Outlook в Интернете и новом Outlook в Windows, если текст содержит форматированные элементы, такие как таблицы, списки и ссылки, укажите Office.CoercionType.Html в вызовеgetAsync. В противном случае может появилось непредвиденное значение, например пустая строка.

Примеры

// 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(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;

Параметры

options
Office.AsyncContextOptions

Литерал объекта, содержащий одно или несколько следующих свойств:- asyncContext: разработчики могут предоставить любой объект, к которому они хотят получить доступ в функции обратного вызова.

callback

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

Необязательный параметр. После завершения метода функция, переданная в callback параметре, вызывается с одним параметром типа Office.AsyncResult. Тип контента возвращается как одно из значений CoercionType в свойстве asyncResult.value .

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.1 ]

Минимальный уровень разрешений: чтение элемента

Применимый режим Outlook: Compose

Важно! В Outlook для Android и в iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.

Примеры

// 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. Тип контента возвращается как одно из значений CoercionType в свойстве asyncResult.value .

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.1 ]

Минимальный уровень разрешений: чтение элемента

Применимый режим Outlook: Compose

Важно! В Outlook для Android и в iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.

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

Литерал объекта, содержащий одно или несколько следующих свойств:- asyncContext: разработчики могут предоставить любой объект, к которому они хотят получить доступ в функции обратного вызова. coercionType : требуемый формат для текста. Строка в параметре data будет преобразована в этот формат.

callback

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

Необязательный параметр. После завершения метода функция, переданная в callback параметре, вызывается с одним параметром типа Office.AsyncResult. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error.

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.1 ]

Минимальный уровень разрешений: чтение и запись элемента

Применимый режим Outlook: Compose

Рекомендуется: вызовите getTypeAsync, а затем передайте возвращенное значение в options.coercionType параметр .

Важно!

  • После добавления содержимого положение курсора зависит от клиента, на котором выполняется надстройка. В Outlook в Интернете и в Windows (новые и классические) положение курсора остается неизменным в уже существовавом содержимом текста. Например, если курсор был расположен в начале текста перед вызовом prependAsync , он будет отображаться между предопределенным содержимым и ранее существовающим содержимым текста после вызова. В Outlook на Mac положение курсора не сохраняется. Курсор исчезает после prependAsync вызова и появляется только тогда, когда пользователь выбирает что-то в тексте почтового элемента.

  • При работе с текстами в формате HTML важно отметить, что клиент может изменить значение, переданное prependAsync в, чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки. Это означает, что значение, возвращаемое при последующем вызове Body.getAsync метода (появившемся в почтовом ящике 1.3), не обязательно будет содержать точное значение, переданное в предыдущем prependAsync вызове.

  • При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута id в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).

  • В Outlook для Android и iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.

  • ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.

  • Метод prependAsync не поддерживает встроенный 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. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error.

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.1 ]

Минимальный уровень разрешений: чтение и запись элемента

Применимый режим Outlook: Compose

Рекомендуется: вызовите getTypeAsync, а затем передайте возвращенное значение в options.coercionType параметр .

Важно!

  • После добавления содержимого положение курсора зависит от клиента, на котором выполняется надстройка. В Outlook в Интернете и в Windows (новые и классические) положение курсора остается неизменным в уже существовавом содержимом текста. Например, если курсор был расположен в начале текста перед вызовом prependAsync , он будет отображаться между предопределенным содержимым и ранее существовающим содержимым текста после вызова. В Outlook на Mac положение курсора не сохраняется. Курсор исчезает после prependAsync вызова и появляется только тогда, когда пользователь выбирает что-то в тексте почтового элемента.

  • При работе с текстами в формате HTML важно отметить, что клиент может изменить значение, переданное prependAsync в, чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки. Это означает, что значение, возвращаемое при последующем вызове Body.getAsync метода (появившемся в почтовом ящике 1.3), не обязательно будет содержать точное значение, переданное в предыдущем prependAsync вызове.

  • При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута id в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).

  • В Outlook для Android и iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.

  • ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.

  • Метод prependAsync не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.

Ошибки:

  • 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

Литерал объекта, содержащий одно или несколько следующих свойств:- asyncContext: разработчики могут предоставить любой объект, к которому они хотят получить доступ в функции обратного вызова. coercionType : требуемый формат для текста. Строка в параметре data будет преобразована в этот формат.

callback

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

Необязательный параметр. После завершения метода функция, переданная в callback параметре, вызывается с одним параметром типа Office.AsyncResult. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error.

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.3 ]

Минимальный уровень разрешений: чтение и запись элемента

Применимый режим Outlook: Compose

Рекомендуется: вызовите getTypeAsync, а затем передайте возвращенное значение в options.coercionType параметр .

Важно!

  • После замены текста указанным содержимым положение курсора зависит от того, на каком клиенте выполняется надстройка. В классическом Outlook в Windows курсор отображается в начале текста почтового элемента. В Outlook в Интернете и новом Outlook в Windows курсор отображается в конце текста почтового элемента. В Outlook на Mac положение курсора не сохраняется. Курсор исчезает после prependAsync вызова и появляется только тогда, когда пользователь выбирает что-то в тексте почтового элемента.

  • При работе с текстами в формате HTML важно отметить, что возвращаемое методом Body.getAsync значение не обязательно будет точно таким же, как ранее переданное в методе Body.setAsync . Клиент может изменить значение, переданное в , setAsync чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки.

  • При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута id в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).

  • В Outlook в Windows и на Mac пользователь надстройки не может отменить изменения это действие с помощью команды Отменить.

  • В Outlook для Android и iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.

  • ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.

  • Метод setAsync не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.

Ошибки:

  • 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,
        asyncContext: "This is passed to the 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-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);
  }
});

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. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error.

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.3 ]

Минимальный уровень разрешений: чтение и запись элемента

Применимый режим Outlook: Compose

Рекомендуется: вызовите getTypeAsync, а затем передайте возвращенное значение в options.coercionType параметр .

Важно!

  • После замены текста указанным содержимым положение курсора зависит от того, на каком клиенте выполняется надстройка. В классическом Outlook в Windows курсор отображается в начале текста почтового элемента. В Outlook в Интернете и новом Outlook в Windows курсор отображается в конце текста почтового элемента. В Outlook на Mac положение курсора не сохраняется. Курсор исчезает после prependAsync вызова и появляется только тогда, когда пользователь выбирает что-то в тексте почтового элемента.

  • При работе с текстами в формате HTML важно отметить, что возвращаемое методом Body.getAsync значение не обязательно будет точно таким же, как ранее переданное в методе Body.setAsync . Клиент может изменить значение, переданное в , setAsync чтобы сделать его эффективно отрисовки с помощью обработчика отрисовки.

  • При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута id в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).

  • В Outlook в Windows и на Mac пользователь надстройки не может отменить изменения это действие с помощью команды Отменить.

  • В Outlook для Android и iOS этот метод не поддерживается в режиме Compose сообщений. Поддерживается только режим организатора встреч. Дополнительные сведения о поддерживаемых API в Outlook Mobile см. в статье API JavaScript Для Outlook, поддерживаемые в Outlook на мобильных устройствах.

  • ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.

  • Метод setAsync не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.

Ошибки:

  • DataExceedsMaximumSize : параметр данных длиннее 1 000 000 символов.

  • InvalidFormatError options.coercionType: для параметра задано значение , Office.CoercionType.Html а текст сообщения — в виде обычного текста.

setSelectedDataAsync(data, options, callback)

Заменяет выделенный фрагмент в основном тексте на заданный текст.

Метод setSelectedDataAsync вставляет указанную строку в положение курсора в тексте элемента или, если текст выделен в редакторе, он заменяет выделенный текст. Если указатель не появлялся в основном тексте элемента, или элемент потерял фокус в интерфейсе, строка вставляется в начало основного текста. После вставки курсор помещается в конец вставленного содержимого.

setSelectedDataAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

Параметры

data

string

Строка, которая заменяет существующий текст. Максимальная длина — 1 000 000 символов.

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

Литерал объекта, содержащий одно или несколько следующих свойств:- asyncContext: разработчики могут предоставить любой объект, к которому они хотят получить доступ в функции обратного вызова. coercionType : требуемый формат для текста. Строка в параметре data будет преобразована в этот формат.

callback

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

Необязательный параметр. После завершения метода функция, переданная в callback параметре, вызывается с одним параметром типа Office.AsyncResult. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error.

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.1 ]

Минимальный уровень разрешений: чтение и запись элемента

Применимый режим Outlook: Compose

Рекомендуется: вызовите getTypeAsync , а затем передайте возвращаемое значение в options.coercionType параметр .

* Важно!

  • При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута id в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).

  • ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.

  • Метод setSelectedDataAsync не поддерживает встроенный 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 вставляет указанную строку в положение курсора в тексте элемента или, если текст выделен в редакторе, он заменяет выделенный текст. Если указатель не появлялся в основном тексте элемента, или элемент потерял фокус в интерфейсе, строка вставляется в начало основного текста. После вставки курсор помещается в конец вставленного содержимого.

setSelectedDataAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

Параметры

data

string

Строка, которая заменяет существующий текст. Максимальная длина — 1 000 000 символов.

callback

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

Необязательный параметр. После завершения метода функция, переданная в callback параметре, вызывается с одним параметром типа Office.AsyncResult. Все обнаруженные ошибки будут указаны в свойстве asyncResult.error.

Возвращаемое значение

void

Комментарии

[ Набор API: Почтовый ящик 1.1 ]

Минимальный уровень разрешений: чтение и запись элемента

Применимый режим Outlook: Compose

Рекомендуется: вызовите getTypeAsync , а затем передайте возвращаемое значение в options.coercionType параметр .

* Важно!

  • При добавлении ссылок в разметку HTML можно отключить предварительный просмотр веб-ссылок, установив для атрибута id в привязке (<a>) значение "LPNoLP" (пример см. в разделе Примеры).

  • ФАЙЛЫ SVG не поддерживаются. Вместо этого используйте файлы JPG или PNG.

  • Метод setSelectedDataAsync не поддерживает встроенный CSS. Вместо этого используйте внутренний или внешний CSS.

Ошибки:

  • DataExceedsMaximumSize data: параметр длиннее 1 000 000 символов.

  • InvalidFormatError options.coercionType: для параметра задано значение , Office.CoercionType.Html а текст сообщения — в виде обычного текста.