您可以在 Google Workspace 外掛程式中建立小工具 含有已連結的動作。別擔心!您可以使用 撰寫新的電子郵件草稿,並視需要使用 或從開啟訊息中輸入的資訊。 例如,您可以在 外掛程式的訊息 UI 撰寫回覆目前開啟的郵件,並預先填入 擷取相關資訊
觸發建立郵件的動作時,Gmail 會執行回呼 函式,用於建構及傳回草稿。Gmail 會在 標準電子郵件撰寫視窗中的使用者介面,使用者可以編輯與傳送電子郵件 將物件的使用中版本還原為舊版 或依需要永久刪除封存版本
設定動作來建立草稿訊息
如要將小工具設為在選取後啟動建構草稿動作,您必須 :
請確認你的資訊清單正確無誤 包含
action.compose
範圍:https://www.googleapis.com/auth/gmail.addons.current.action.compose
您可以改用更多權限範圍,但我們建議只在 絕對有必要的
呼叫小工具的
setComposeAction()
小工具處理常式函式 提供Action
並指定ComposeEmailType
。實作執行草稿建構動作的回呼函式。這個 函式會獲得一個事件物件 做為引數回呼函式必須執行以下操作:
- 建立
GmailDraft
物件。 - 建立
ComposeActionResponse
物件,方法是使用ComposeActionResponseBuilder
類別和GmailDraft
物件。 - 傳回已建構的
ComposeActionResponse
。
- 建立
您可以預先填入 GmailDraft
您在回呼函式中建立的範例
收件者、主旨、郵件內文和附件如要填寫草稿
可能來自任何來源,但通常是取自資訊
顯示在開放式訊息中的資訊,或
從第三方服務收集的資訊
事件物件
傳遞至回呼函式包含開啟的郵件 ID 及其他外掛程式
預先填入草稿的資訊。
您可以建立獨立郵件或回覆對象的草稿
現有訊息。這是由
ComposeEmailType
敬上
提供給
setComposeAction()
。
回覆草稿的形式可以是單一回覆或「回覆全部」訊息。
獨立草稿
獨立草稿會發起新的討論串,且不會回覆任何現有訊息 撰寫新的電子郵件訊息您可以建立包含以下項目的獨立草稿 Gmail 服務函式:
GmailApp.createDraft(recipient, subject, body)
GmailApp.createDraft(recipient, subject, body, options)
回覆草稿
回覆草稿是現有訊息串的一部分,回覆草稿的 只傳送給郵件寄件者或「回覆所有人」的單一回覆 收件者收到的郵件草稿您可以建立 使用其中一項 Gmail 服務回覆草稿 函式:
GmailMessage.createDraftReply(body)
GmailMessage.createDraftReply(body, options)
GmailMessage.createDraftReplyAll(body)
GmailMessage.createDraftReplyAll(body, options)
GmailThread.createDraftReply(body)
GmailThread.createDraftReply(body, options)
GmailThread.createDraftReplyAll(body)
GmailThread.createDraftReplyAll(body, options)
範例
下列程式碼片段說明如何指派建立回覆的動作 草擬按鈕
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();
}