您可以在 Google Workspace 插件中创建微件 关联了操作的广告系列。您可以使用 用于撰写新电子邮件草稿的操作,可选择使用 输入到插件界面中的信息或从已打开邮件中获取的信息。 例如,您可以在 插件的消息界面 创建对当前打开的邮件的回复,邮件中预填充了 信息。
当触发用于构建邮件的操作时,Gmail 会执行回调 函数来构建并返回草稿。然后,Gmail 会将该草稿 标准电子邮件撰写窗口中的界面,用户可以在该窗口中编辑和发送 。
配置用于构建消息草稿的操作
要将微件配置为在选中后启动草稿构建操作,您必须 执行以下操作:
确保您的清单 包含
action.compose
范围:https://www.googleapis.com/auth/gmail.addons.current.action.compose
您可以改用更宽松的作用域,但只应在以下情况下使用: 该范围是绝对必要的
调用 widget 的
setComposeAction()
widget 处理程序函数, 提供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();
}