撰寫郵件草稿

您可以在 Google Workspace 外掛程式中建立小工具 含有已連結的動作。別擔心!您可以使用 撰寫新的電子郵件草稿,並視需要使用 或從開啟訊息中輸入的資訊。 例如,您可以在 外掛程式的訊息 UI 撰寫回覆目前開啟的郵件,並預先填入 擷取相關資訊

觸發建立郵件的動作時,Gmail 會執行回呼 函式,用於建構及傳回草稿。Gmail 會在 標準電子郵件撰寫視窗中的使用者介面,使用者可以編輯與傳送電子郵件 將物件的使用中版本還原為舊版 或依需要永久刪除封存版本

設定動作來建立草稿訊息

如要將小工具設為在選取後啟動建構草稿動作,您必須 :

  1. 請確認你的資訊清單正確無誤 包含 action.compose 範圍

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

    您可以改用更多權限範圍,但我們建議只在 絕對有必要的

  2. 建立 Action 物件 並與回呼函式建立關聯 每個 Pod 都有專屬的 IP 位址

  3. 呼叫小工具的 setComposeAction() 小工具處理常式函式 提供 Action 並指定 ComposeEmailType

  4. 實作執行草稿建構動作的回呼函式。這個 函式會獲得一個事件物件 做為引數回呼函式必須執行以下操作:

    1. 建立 GmailDraft 物件。
    2. 建立 ComposeActionResponse 物件,方法是使用 ComposeActionResponseBuilder 類別和 GmailDraft 物件。
    3. 傳回已建構的 ComposeActionResponse

您可以預先填入 GmailDraft 您在回呼函式中建立的範例 收件者、主旨、郵件內文和附件如要填寫草稿 可能來自任何來源,但通常是取自資訊 顯示在開放式訊息中的資訊,或 從第三方服務收集的資訊 事件物件 傳遞至回呼函式包含開啟的郵件 ID 及其他外掛程式 預先填入草稿的資訊。

您可以建立獨立郵件或回覆對象的草稿 現有訊息。這是由 ComposeEmailType敬上 提供給 setComposeAction()。 回覆草稿的形式可以是單一回覆或「回覆全部」訊息。

獨立草稿

獨立草稿會發起新的討論串,且不會回覆任何現有訊息 撰寫新的電子郵件訊息您可以建立包含以下項目的獨立草稿 Gmail 服務函式:

回覆草稿

回覆草稿是現有訊息串的一部分,回覆草稿的 只傳送給郵件寄件者或「回覆所有人」的單一回覆 收件者收到的郵件草稿您可以建立 使用其中一項 Gmail 服務回覆草稿 函式:

範例

下列程式碼片段說明如何指派建立回覆的動作 草擬按鈕

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