Composer des brouillons

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Dans un Google Workspace module complémentaire, vous pouvez créer des widgets associés à des actions associées. Vous pouvez utiliser une action pour rédiger de nouveaux brouillons d'e-mails, éventuellement en les saisissant à l'aide des informations saisies dans l'interface utilisateur du module complémentaire ou à partir d'un message ouvert. Par exemple, l'UI du module complémentaire peut avoir un bouton permettant de créer une réponse au message actuellement ouvert, prérempli avec des informations du module complémentaire.

Lorsqu'une action de compilation des messages est déclenchée, Gmail exécute une fonction de rappel pour compiler et renvoyer le brouillon. Gmail affiche ensuite ce brouillon dans l'interface utilisateur d'une fenêtre de rédaction standard, que l'utilisateur peut ensuite modifier et envoyer selon ses besoins.

Configurer une action pour créer un brouillon

Pour configurer un widget et lancer une action brouillon lors de sa sélection, procédez comme suit:

  1. Assurez-vous que votre fichier manifeste inclut le champ d'application action.compose:

    https://www.googleapis.com/auth/gmail.addons.current.action.compose

    Vous pouvez utiliser un champ d'application plus permissif à la place, mais ne devez le faire que si ce champ d'application est absolument nécessaire.

  2. Créez un objet Action et associez-le à une fonction de rappel que vous définissez.

  3. Appelez la fonction de transfert du widget setComposeAction() du widget, en fournissant l'objet Action et en spécifiant ComposeEmailType.

  4. Implémentez la fonction de rappel qui exécute l'action de création de brouillon. Un objet d'événement est attribué à cette fonction en tant qu'argument. La fonction de rappel doit effectuer les opérations suivantes:

    1. Créez un objet GmailDraft.
    2. Créez un objet ComposeActionResponse à l'aide de la classe ComposeActionResponseBuilder et de l'objet GmailDraft.
    3. Renvoyez la ComposeActionResponse créée.

Vous pouvez préremplir l'objet GmailDraft que vous avez créé dans la fonction de rappel avec des destinataires, un objet, un corps de message et des pièces jointes. Pour remplir le brouillon, les données peuvent provenir de n'importe quelle source, mais elles proviennent généralement des informations fournies par le module complémentaire lui-même, des informations du message ouvert ou de celles collectées par un service tiers. L'objet événement transmis à la fonction de rappel contient l'ID de message ouvert et d'autres informations sur le module complémentaire que vous pouvez utiliser pour préremplir le brouillon.

Vous pouvez créer le brouillon en tant que nouveau message autonome ou réponse à un message existant. Ce paramètre est contrôlé par l'énumération ComposeEmailType attribuée à la propriété setComposeAction(). Vous pouvez créer des brouillons de réponses sous forme de réponses uniques ou de messages de réponse.

Brouillons indépendants

Un brouillon autonome démarre un fil de discussion et n'est pas une réponse à un message existant. Vous pouvez créer un brouillon autonome à l'aide de l'une des fonctions suivantes du service Gmail:

Brouillons de réponse

Un brouillon de réponse fait partie d'un fil de discussion existant. Les brouillons de réponse sont composés d'une seule réponse et ne peuvent être envoyés qu'à l'expéditeur d'un message, ou être des réponses à tous les destinataires de ce message. Vous pouvez créer un brouillon de réponse à l'aide de l'une des fonctions de service Gmail suivantes:

Exemple

L'extrait de code suivant montre comment attribuer une action qui génère un brouillon de réponse à un bouton.

  var composeAction = CardService.newAction()
      .setFunctionName('createReplyDraft');
  var composeButton = CardService.newTextButton()
      .setText('Compose Reply')
      .setComposeAction(
          composeAction,
          CardService.ComposedEmailType.REPLY_AS_DRAFT);

  // ...

  /**
   *  Creates a draft email (with an attachment and inline image)
   *  as a reply to an existing message.
   *  @param {Object} e An event object passed by the action.
   *  @return {ComposeActionResponse}
   */
  function createReplyDraft(e) {
    // Activate temporary Gmail scopes, in this case to allow
    // a reply to be drafted.
    var accessToken = e.gmail.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    // Creates a draft reply.
    var messageId = e.gmail.messageId;
    var message = GmailApp.getMessageById(messageId);
    var draft = message.createDraftReply('',
        {
            htmlBody: "Kitten! <img src='cid:kitten'/>",
            attachments: [
              UrlFetchApp.fetch('https://example.com/images/myDog.jpg')
                  .getBlob()
            ],
            inlineImages: {
              "kitten": UrlFetchApp.fetch('https://example.com/images/myKitten.jpg')
                           .getBlob()
            }
        }
    );

    // Return a built draft response. This causes Gmail to present a
    // compose window to the user, pre-filled with the content specified
    // above.
    return CardService.newComposeActionResponseBuilder()
        .setGmailDraft(draft).build();
  }