Partager via


Office.Body interface

L’objet body fournit des méthodes pour ajouter et mettre à jour le contenu du message ou du rendez-vous. Il est renvoyé dans la propriété body de l’élément sélectionné.

Remarques

[ Ensemble d’API : Boîte aux lettres 1.1 ]

Problème connu avec les couleurs de bordure de tableau HTML

Outlook sur Windows : si vous définissez différentes bordures de cellule sur différentes couleurs dans un tableau HTML en mode Compose, les bordures d’une cellule peuvent ne pas refléter la couleur attendue. Pour connaître le comportement connu, consultez OfficeDev/office-js issue #1818.

Niveau d’autorisation minimal : élément de lecture

Mode Outlook applicable : Rédiger ou Lire

Exemples

// 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éthodes

getTypeAsync(options, callback)

Obtient une valeur qui indique si le contenu est au format HTML ou texte.

getTypeAsync(callback)

Obtient une valeur qui indique si le contenu est au format HTML ou texte.

prependAsync(data, options, callback)

Ajoute le contenu spécifié au début du corps de l’élément.

prependAsync(data, callback)

Ajoute le contenu spécifié au début du corps de l’élément.

setSelectedDataAsync(data, options, callback)

Remplace la sélection dans le corps par le texte spécifié.

La méthode setSelectedDataAsync insère la chaîne spécifiée à l’emplacement du curseur dans le corps de l’élément ou, si du texte est sélectionné dans l’éditeur, elle remplace ce texte. Si le curseur ne s’est jamais trouvé dans le corps de l’élément, ou si le corps de l’élément n’est plus la partie active de l’interface utilisateur, la chaîne est insérée au début du corps de l’élément. Après l’insertion, le curseur est placé à la fin du contenu inséré.

setSelectedDataAsync(data, callback)

Remplace la sélection dans le corps par le texte spécifié.

La méthode setSelectedDataAsync insère la chaîne spécifiée à l’emplacement du curseur dans le corps de l’élément ou, si du texte est sélectionné dans l’éditeur, elle remplace ce texte. Si le curseur ne s’est jamais trouvé dans le corps de l’élément, ou si le corps de l’élément n’est plus la partie active de l’interface utilisateur, la chaîne est insérée au début du corps de l’élément. Après l’insertion, le curseur est placé à la fin du contenu inséré.

Détails de la méthode

getTypeAsync(options, callback)

Obtient une valeur qui indique si le contenu est au format HTML ou texte.

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

Paramètres

options
Office.AsyncContextOptions

Littéral d’objet qui contient une ou plusieurs des propriétés suivantes : les asyncContextdéveloppeurs peuvent fournir n’importe quel objet auquel ils souhaitent accéder dans la fonction de rappel.

callback

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

Optional. Une fois la méthode terminée, la fonction passée dans le callback paramètre est appelée avec un seul paramètre de type Office.AsyncResult. Le type de contenu est retourné comme l’une des CoercionType valeurs de la asyncResult.value propriété .

Retours

void

Remarques

[ Ensemble d’API : Boîte aux lettres 1.1 ]

Niveau d’autorisation minimal : élément de lecture

Mode Outlook applicable : Compose

Important : Dans Outlook sur Android et iOS, cette méthode n’est pas prise en charge en mode Compose message. Seul le mode Organisateur de rendez-vous est pris en charge. Pour plus d’informations sur les API prises en charge dans Outlook Mobile, consultez API JavaScript Outlook prises en charge dans Outlook sur les appareils mobiles.

Exemples

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

Obtient une valeur qui indique si le contenu est au format HTML ou texte.

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

Paramètres

callback

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

Optional. Une fois la méthode terminée, la fonction passée dans le callback paramètre est appelée avec un seul paramètre de type Office.AsyncResult. Le type de contenu est retourné comme l’une des CoercionType valeurs de la asyncResult.value propriété .

Retours

void

Remarques

[ Ensemble d’API : Boîte aux lettres 1.1 ]

Niveau d’autorisation minimal : élément de lecture

Mode Outlook applicable : Compose

Important : Dans Outlook sur Android et iOS, cette méthode n’est pas prise en charge en mode Compose message. Seul le mode Organisateur de rendez-vous est pris en charge. Pour plus d’informations sur les API prises en charge dans Outlook Mobile, consultez API JavaScript Outlook prises en charge dans Outlook sur les appareils mobiles.

prependAsync(data, options, callback)

Ajoute le contenu spécifié au début du corps de l’élément.

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

Paramètres

data

string

La chaîne doit être insérée au début du corps. Elle est limitée à un million de caractères.

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

Littéral d’objet qui contient une ou plusieurs des propriétés suivantes : les asyncContextdéveloppeurs peuvent fournir n’importe quel objet auquel ils souhaitent accéder dans la fonction de rappel. coercionType : format souhaité pour le corps. La chaîne du paramètre data est convertie dans ce format.

callback

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

Optional. Une fois la méthode terminée, la fonction passée dans le callback paramètre est appelée avec un seul paramètre de type Office.AsyncResult. Les erreurs rencontrées seront indiquées dans la propriété asyncResult.error.

Retours

void

Remarques

[ Ensemble d’API : Boîte aux lettres 1.1 ]

Niveau d’autorisation minimal : élément en lecture/écriture

Mode Outlook applicable : Compose

Recommandé : appelez getTypeAsync, puis passez la valeur retournée au options.coercionType paramètre .

Important:

  • Une fois le contenu ajouté, la position du curseur dépend du client en cours d’exécution du complément. Dans Outlook sur le web et sur Windows (nouveau et classique), la position du curseur reste la même dans le contenu préexistant du corps. Par exemple, si le curseur a été positionné au début du corps avant l’appel prependAsync , il apparaît entre le contenu ajouté et le contenu préexistant du corps après l’appel. Dans Outlook sur Mac, la position du curseur n’est pas conservée. Le curseur disparaît après l’appel prependAsync et ne réapparaît que lorsque l’utilisateur sélectionne un élément dans le corps de l’élément de courrier.

  • Lorsque vous travaillez avec des corps au format HTML, il est important de noter que le client peut modifier la valeur passée à prependAsync pour qu’elle s’affiche efficacement avec son moteur de rendu. Cela signifie que la valeur retournée par un appel ultérieur à la Body.getAsync méthode (introduite dans mailbox 1.3) ne contiendra pas nécessairement la valeur exacte qui a été passée dans l’appel précédent prependAsync .

  • Lorsque vous incluez des liens dans le balisage HTML, vous pouvez désactiver l’aperçu des liens en ligne en définissant l’attribut id sur l’ancre (<a>) sur « LPNoLP » (voir la section Exemples pour obtenir un exemple).

  • Dans Outlook sur Android et sur iOS, cette méthode n’est pas prise en charge en mode message Compose. Seul le mode Organisateur de rendez-vous est pris en charge. Pour plus d’informations sur les API prises en charge dans Outlook Mobile, consultez API JavaScript Outlook prises en charge dans Outlook sur les appareils mobiles.

  • Les fichiers SVG ne sont pas pris en charge. Utilisez plutôt des fichiers JPG ou PNG.

  • La prependAsync méthode ne prend pas en charge css inline. Utilisez plutôt des css internes ou externes.

Erreurs :

  • DataExceedsMaximumSize : le paramètre de données dépasse 1 000 000 caractères.

Exemples

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

Ajoute le contenu spécifié au début du corps de l’élément.

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

Paramètres

data

string

La chaîne doit être insérée au début du corps. Elle est limitée à un million de caractères.

callback

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

Optional. Une fois la méthode terminée, la fonction passée dans le callback paramètre est appelée avec un seul paramètre de type Office.AsyncResult. Les erreurs rencontrées seront indiquées dans la propriété asyncResult.error.

Retours

void

Remarques

[ Ensemble d’API : Boîte aux lettres 1.1 ]

Niveau d’autorisation minimal : élément en lecture/écriture

Mode Outlook applicable : Compose

Recommandé : appelez getTypeAsync, puis passez la valeur retournée au options.coercionType paramètre .

Important:

  • Une fois le contenu ajouté, la position du curseur dépend du client en cours d’exécution du complément. Dans Outlook sur le web et sur Windows (nouveau et classique), la position du curseur reste la même dans le contenu préexistant du corps. Par exemple, si le curseur a été positionné au début du corps avant l’appel prependAsync , il apparaît entre le contenu ajouté et le contenu préexistant du corps après l’appel. Dans Outlook sur Mac, la position du curseur n’est pas conservée. Le curseur disparaît après l’appel prependAsync et ne réapparaît que lorsque l’utilisateur sélectionne un élément dans le corps de l’élément de courrier.

  • Lorsque vous travaillez avec des corps au format HTML, il est important de noter que le client peut modifier la valeur passée à prependAsync pour qu’elle s’affiche efficacement avec son moteur de rendu. Cela signifie que la valeur retournée par un appel ultérieur à la Body.getAsync méthode (introduite dans mailbox 1.3) ne contiendra pas nécessairement la valeur exacte qui a été passée dans l’appel précédent prependAsync .

  • Lorsque vous incluez des liens dans le balisage HTML, vous pouvez désactiver l’aperçu des liens en ligne en définissant l’attribut id sur l’ancre (<a>) sur « LPNoLP » (voir la section Exemples pour obtenir un exemple).

  • Dans Outlook sur Android et sur iOS, cette méthode n’est pas prise en charge en mode message Compose. Seul le mode Organisateur de rendez-vous est pris en charge. Pour plus d’informations sur les API prises en charge dans Outlook Mobile, consultez API JavaScript Outlook prises en charge dans Outlook sur les appareils mobiles.

  • Les fichiers SVG ne sont pas pris en charge. Utilisez plutôt des fichiers JPG ou PNG.

  • La prependAsync méthode ne prend pas en charge css inline. Utilisez plutôt des css internes ou externes.

Erreurs :

  • DataExceedsMaximumSize : le paramètre de données dépasse 1 000 000 caractères.

setSelectedDataAsync(data, options, callback)

Remplace la sélection dans le corps par le texte spécifié.

La méthode setSelectedDataAsync insère la chaîne spécifiée à l’emplacement du curseur dans le corps de l’élément ou, si du texte est sélectionné dans l’éditeur, elle remplace ce texte. Si le curseur ne s’est jamais trouvé dans le corps de l’élément, ou si le corps de l’élément n’est plus la partie active de l’interface utilisateur, la chaîne est insérée au début du corps de l’élément. Après l’insertion, le curseur est placé à la fin du contenu inséré.

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

Paramètres

data

string

Chaîne qui remplace le corps existant. Elle est limitée à 1 000 000 caractères.

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

Littéral d’objet qui contient une ou plusieurs des propriétés suivantes : les asyncContextdéveloppeurs peuvent fournir n’importe quel objet auquel ils souhaitent accéder dans la fonction de rappel. coercionType : format souhaité pour le corps. La chaîne du paramètre data est convertie dans ce format.

callback

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

Optional. Une fois la méthode terminée, la fonction passée dans le callback paramètre est appelée avec un seul paramètre de type Office.AsyncResult. Les erreurs rencontrées seront indiquées dans la propriété asyncResult.error.

Retours

void

Remarques

[ Ensemble d’API : Boîte aux lettres 1.1 ]

Niveau d’autorisation minimal : élément en lecture/écriture

Mode Outlook applicable : Compose

Recommandé : Appelez getTypeAsync , puis transmettez la valeur retournée au options.coercionType paramètre .

* Important :

  • Lorsque vous incluez des liens dans le balisage HTML, vous pouvez désactiver l’aperçu des liens en ligne en définissant l’attribut id sur l’ancre (<a>) sur « LPNoLP » (voir la section Exemples pour obtenir un exemple).

  • Les fichiers SVG ne sont pas pris en charge. Utilisez plutôt des fichiers JPG ou PNG.

  • La setSelectedDataAsync méthode ne prend pas en charge css inline. Utilisez plutôt des css internes ou externes.

Erreurs :

  • DataExceedsMaximumSize : le data paramètre comporte plus de 1 000 000 caractères.

  • InvalidFormatError : le options.coercionType paramètre est défini sur Office.CoercionType.Html et le corps du message est en texte brut.

Exemples

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

Remplace la sélection dans le corps par le texte spécifié.

La méthode setSelectedDataAsync insère la chaîne spécifiée à l’emplacement du curseur dans le corps de l’élément ou, si du texte est sélectionné dans l’éditeur, elle remplace ce texte. Si le curseur ne s’est jamais trouvé dans le corps de l’élément, ou si le corps de l’élément n’est plus la partie active de l’interface utilisateur, la chaîne est insérée au début du corps de l’élément. Après l’insertion, le curseur est placé à la fin du contenu inséré.

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

Paramètres

data

string

Chaîne qui remplace le corps existant. Elle est limitée à 1 000 000 caractères.

callback

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

Optional. Une fois la méthode terminée, la fonction passée dans le callback paramètre est appelée avec un seul paramètre de type Office.AsyncResult. Les erreurs rencontrées seront indiquées dans la propriété asyncResult.error.

Retours

void

Remarques

[ Ensemble d’API : Boîte aux lettres 1.1 ]

Niveau d’autorisation minimal : élément en lecture/écriture

Mode Outlook applicable : Compose

Recommandé : Appelez getTypeAsync , puis transmettez la valeur retournée au options.coercionType paramètre .

* Important :

  • Lorsque vous incluez des liens dans le balisage HTML, vous pouvez désactiver l’aperçu des liens en ligne en définissant l’attribut id sur l’ancre (<a>) sur « LPNoLP » (voir la section Exemples pour obtenir un exemple).

  • Les fichiers SVG ne sont pas pris en charge. Utilisez plutôt des fichiers JPG ou PNG.

  • La setSelectedDataAsync méthode ne prend pas en charge css inline. Utilisez plutôt des css internes ou externes.

Erreurs :

  • DataExceedsMaximumSize : le data paramètre comporte plus de 1 000 000 caractères.

  • InvalidFormatError : le options.coercionType paramètre est défini sur Office.CoercionType.Html et le corps du message est en texte brut.