Compartilhar via


Office.Body interface

O objeto body fornece métodos para adicionar e atualizar o conteúdo da mensagem ou compromisso. É devolvido na propriedade body do item selecionado.

Comentários

[ Conjunto de API: Caixa de Correio 1.1 ]

Problema conhecido com as cores de limite da tabela HTML

Outlook no Windows: se estiver a definir vários limites de células para cores diferentes numa tabela HTML no modo Compose, os limites de uma célula poderão não refletir a cor esperada. Para obter o comportamento conhecido, visite OfficeDev/office-js issue #1818.

Nível mínimo de permissão: ler item

Modo Outlook aplicável: Compose ou Leitura

Exemplos

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

Métodos

getTypeAsync(options, callback)

Obtém um valor que indica se o conteúdo está em formato HTML ou texto.

getTypeAsync(callback)

Obtém um valor que indica se o conteúdo está em formato HTML ou texto.

prependAsync(data, options, callback)

Adiciona o conteúdo especificado ao início do corpo do item.

prependAsync(data, callback)

Adiciona o conteúdo especificado ao início do corpo do item.

setSelectedDataAsync(data, options, callback)

Substitui a seleção no corpo pelo texto especificado.

O método setSelectedDataAsync insere a cadeia de caracteres especificada no local do cursor no corpo do item ou, se o texto estiver selecionado no editor, substitui o texto selecionado. Se o cursor nunca esteve no corpo do item, ou se o corpo do item perdeu o destaque na interface de usuário, a cadeia de caracteres será inserida na parte superior do conteúdo do corpo. Após a inserção, o cursor é colocado no final do conteúdo inserido.

setSelectedDataAsync(data, callback)

Substitui a seleção no corpo pelo texto especificado.

O método setSelectedDataAsync insere a cadeia de caracteres especificada no local do cursor no corpo do item ou, se o texto estiver selecionado no editor, substitui o texto selecionado. Se o cursor nunca esteve no corpo do item, ou se o corpo do item perdeu o destaque na interface de usuário, a cadeia de caracteres será inserida na parte superior do conteúdo do corpo. Após a inserção, o cursor é colocado no final do conteúdo inserido.

Detalhes do método

getTypeAsync(options, callback)

Obtém um valor que indica se o conteúdo está em formato HTML ou texto.

getTypeAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;

Parâmetros

options
Office.AsyncContextOptions

Um literal de objeto que contém uma ou mais das seguintes propriedades: asyncContext: os programadores podem fornecer qualquer objeto a que pretendam aceder na função de chamada de retorno.

callback

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

Opcional. Quando o método for concluído, a função transmitida no callback parâmetro é chamada com um único parâmetro do tipo Office.AsyncResult. O tipo de conteúdo é devolvido como um dos CoercionType valores na asyncResult.value propriedade .

Retornos

void

Comentários

[ Conjunto de API: Caixa de Correio 1.1 ]

Nível mínimo de permissão: ler item

Modo Outlook aplicável: Compose

Importante: no Outlook para Android e no iOS, este método não é suportado no modo Compose mensagens. Apenas o modo Organizador de Compromissos é suportado. Para obter mais informações sobre as APIs suportadas no Outlook Mobile, consulte ApIs JavaScript do Outlook suportadas no Outlook em dispositivos móveis.

Exemplos

// 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)

Obtém um valor que indica se o conteúdo está em formato HTML ou texto.

getTypeAsync(callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;

Parâmetros

callback

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

Opcional. Quando o método for concluído, a função transmitida no callback parâmetro é chamada com um único parâmetro do tipo Office.AsyncResult. O tipo de conteúdo é devolvido como um dos CoercionType valores na asyncResult.value propriedade .

Retornos

void

Comentários

[ Conjunto de API: Caixa de Correio 1.1 ]

Nível mínimo de permissão: ler item

Modo Outlook aplicável: Compose

Importante: no Outlook para Android e no iOS, este método não é suportado no modo Compose mensagens. Apenas o modo Organizador de Compromissos é suportado. Para obter mais informações sobre as APIs suportadas no Outlook Mobile, consulte ApIs JavaScript do Outlook suportadas no Outlook em dispositivos móveis.

prependAsync(data, options, callback)

Adiciona o conteúdo especificado ao início do corpo do item.

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

Parâmetros

data

string

A cadeia de caracteres a ser inserida no início do corpo. A cadeia de caracteres está limitada a 1.000.000 de caracteres.

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

Um literal de objeto que contém uma ou mais das seguintes propriedades: asyncContext: os programadores podem fornecer qualquer objeto a que pretendam aceder na função de chamada de retorno. coercionType : o formato pretendido para o corpo. A cadeia de caracteres no parâmetro data será convertida para este formato.

callback

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

Opcional. Quando o método for concluído, a função transmitida no callback parâmetro é chamada com um único parâmetro do tipo Office.AsyncResult. Quaisquer erros encontrados serão fornecidos na propriedade asyncResult.error.

Retornos

void

Comentários

[ Conjunto de API: Caixa de Correio 1.1 ]

Nível mínimo de permissão: item de leitura/escrita

Modo Outlook aplicável: Compose

Recomendado: chame getTypeAsynce, em seguida, transmita o valor devolvido para o options.coercionType parâmetro .

Importante:

  • Depois de o conteúdo ser pré-anexado, a posição do cursor depende do cliente em que o suplemento está em execução. No Outlook na Web e no Windows (novo e clássico), a posição do cursor permanece a mesma no conteúdo pré-existente do corpo. Por exemplo, se o cursor tiver sido posicionado no início do corpo antes prependAsync da chamada, será apresentado entre o conteúdo pré-anexado e o conteúdo pré-existente do corpo após a chamada. No Outlook para Mac, a posição do cursor não é preservada. O cursor desaparece após a prependAsync chamada e só volta a aparecer quando o utilizador seleciona algo no corpo do item de correio.

  • Ao trabalhar com corpos formatados em HTML, é importante ter em atenção que o cliente pode modificar o valor transmitido para prependAsync o tornar eficiente com o motor de composição. Isto significa que o valor devolvido de uma chamada subsequente ao Body.getAsync método (introduzido na Caixa de Correio 1.3) não conterá necessariamente o valor exato que foi transmitido na chamada anterior prependAsync .

  • Ao incluir ligações na marcação HTML, pode desativar a pré-visualização da ligação online ao definir o id atributo na âncora (<a>) como "LPNoLP" (consulte a secção Exemplos de um exemplo).

  • No Outlook para Android e no iOS, este método não é suportado no modo de Compose mensagens. Apenas o modo Organizador de Compromissos é suportado. Para obter mais informações sobre as APIs suportadas no Outlook Mobile, consulte ApIs JavaScript do Outlook suportadas no Outlook em dispositivos móveis.

  • Os ficheiros SVG não são suportados. Em alternativa, utilize ficheiros JPG ou PNG.

  • O prependAsync método não suporta CSS inline. Em alternativa, utilize CSS interno ou externo.

Erros:

  • DataExceedsMaximumSize : o parâmetro de dados tem mais de 1000 000 carateres.

Exemplos

// 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)

Adiciona o conteúdo especificado ao início do corpo do item.

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

Parâmetros

data

string

A cadeia de caracteres a ser inserida no início do corpo. A cadeia de caracteres está limitada a 1.000.000 de caracteres.

callback

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

Opcional. Quando o método for concluído, a função transmitida no callback parâmetro é chamada com um único parâmetro do tipo Office.AsyncResult. Quaisquer erros encontrados serão fornecidos na propriedade asyncResult.error.

Retornos

void

Comentários

[ Conjunto de API: Caixa de Correio 1.1 ]

Nível mínimo de permissão: item de leitura/escrita

Modo Outlook aplicável: Compose

Recomendado: chame getTypeAsynce, em seguida, transmita o valor devolvido para o options.coercionType parâmetro .

Importante:

  • Depois de o conteúdo ser pré-anexado, a posição do cursor depende do cliente em que o suplemento está em execução. No Outlook na Web e no Windows (novo e clássico), a posição do cursor permanece a mesma no conteúdo pré-existente do corpo. Por exemplo, se o cursor tiver sido posicionado no início do corpo antes prependAsync da chamada, será apresentado entre o conteúdo pré-anexado e o conteúdo pré-existente do corpo após a chamada. No Outlook para Mac, a posição do cursor não é preservada. O cursor desaparece após a prependAsync chamada e só volta a aparecer quando o utilizador seleciona algo no corpo do item de correio.

  • Ao trabalhar com corpos formatados em HTML, é importante ter em atenção que o cliente pode modificar o valor transmitido para prependAsync o tornar eficiente com o motor de composição. Isto significa que o valor devolvido de uma chamada subsequente ao Body.getAsync método (introduzido na Caixa de Correio 1.3) não conterá necessariamente o valor exato que foi transmitido na chamada anterior prependAsync .

  • Ao incluir ligações na marcação HTML, pode desativar a pré-visualização da ligação online ao definir o id atributo na âncora (<a>) como "LPNoLP" (consulte a secção Exemplos de um exemplo).

  • No Outlook para Android e no iOS, este método não é suportado no modo de Compose mensagens. Apenas o modo Organizador de Compromissos é suportado. Para obter mais informações sobre as APIs suportadas no Outlook Mobile, consulte ApIs JavaScript do Outlook suportadas no Outlook em dispositivos móveis.

  • Os ficheiros SVG não são suportados. Em alternativa, utilize ficheiros JPG ou PNG.

  • O prependAsync método não suporta CSS inline. Em alternativa, utilize CSS interno ou externo.

Erros:

  • DataExceedsMaximumSize : o parâmetro de dados tem mais de 1000 000 carateres.

setSelectedDataAsync(data, options, callback)

Substitui a seleção no corpo pelo texto especificado.

O método setSelectedDataAsync insere a cadeia de caracteres especificada no local do cursor no corpo do item ou, se o texto estiver selecionado no editor, substitui o texto selecionado. Se o cursor nunca esteve no corpo do item, ou se o corpo do item perdeu o destaque na interface de usuário, a cadeia de caracteres será inserida na parte superior do conteúdo do corpo. Após a inserção, o cursor é colocado no final do conteúdo inserido.

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

Parâmetros

data

string

A cadeia de caracteres que substituirá o corpo existente. A cadeia de caracteres está limitada a 1.000.000 de caracteres.

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

Um literal de objeto que contém uma ou mais das seguintes propriedades: asyncContext: os programadores podem fornecer qualquer objeto a que pretendam aceder na função de chamada de retorno. coercionType : o formato pretendido para o corpo. A cadeia de caracteres no parâmetro data será convertida para este formato.

callback

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

Opcional. Quando o método for concluído, a função transmitida no callback parâmetro é chamada com um único parâmetro do tipo Office.AsyncResult. Quaisquer erros encontrados serão fornecidos na propriedade asyncResult.error.

Retornos

void

Comentários

[ Conjunto de API: Caixa de Correio 1.1 ]

Nível mínimo de permissão: item de leitura/escrita

Modo Outlook aplicável: Compose

Recomendado: chame getTypeAsync e, em seguida, transmita o valor devolvido para o options.coercionType parâmetro .

* Importante:

  • Ao incluir ligações na marcação HTML, pode desativar a pré-visualização da ligação online ao definir o id atributo na âncora (<a>) como "LPNoLP" (consulte a secção Exemplos de um exemplo).

  • Os ficheiros SVG não são suportados. Em alternativa, utilize ficheiros JPG ou PNG.

  • O setSelectedDataAsync método não suporta CSS inline. Em alternativa, utilize CSS interno ou externo.

Erros:

  • DataExceedsMaximumSize : o data parâmetro tem mais de 1000 000 carateres.

  • InvalidFormatError : o options.coercionType parâmetro está definido como Office.CoercionType.Html e o corpo da mensagem está em texto simples.

Exemplos

// 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)

Substitui a seleção no corpo pelo texto especificado.

O método setSelectedDataAsync insere a cadeia de caracteres especificada no local do cursor no corpo do item ou, se o texto estiver selecionado no editor, substitui o texto selecionado. Se o cursor nunca esteve no corpo do item, ou se o corpo do item perdeu o destaque na interface de usuário, a cadeia de caracteres será inserida na parte superior do conteúdo do corpo. Após a inserção, o cursor é colocado no final do conteúdo inserido.

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

Parâmetros

data

string

A cadeia de caracteres que substituirá o corpo existente. A cadeia de caracteres está limitada a 1.000.000 de caracteres.

callback

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

Opcional. Quando o método for concluído, a função transmitida no callback parâmetro é chamada com um único parâmetro do tipo Office.AsyncResult. Quaisquer erros encontrados serão fornecidos na propriedade asyncResult.error.

Retornos

void

Comentários

[ Conjunto de API: Caixa de Correio 1.1 ]

Nível mínimo de permissão: item de leitura/escrita

Modo Outlook aplicável: Compose

Recomendado: chame getTypeAsync e, em seguida, transmita o valor devolvido para o options.coercionType parâmetro .

* Importante:

  • Ao incluir ligações na marcação HTML, pode desativar a pré-visualização da ligação online ao definir o id atributo na âncora (<a>) como "LPNoLP" (consulte a secção Exemplos de um exemplo).

  • Os ficheiros SVG não são suportados. Em alternativa, utilize ficheiros JPG ou PNG.

  • O setSelectedDataAsync método não suporta CSS inline. Em alternativa, utilize CSS interno ou externo.

Erros:

  • DataExceedsMaximumSize : o data parâmetro tem mais de 1000 000 carateres.

  • InvalidFormatError : o options.coercionType parâmetro está definido como Office.CoercionType.Html e o corpo da mensagem está em texto simples.