Google apps script 在我的appscript GUI中包括一个html电子邮件编辑器(类似于gmail发送表单)
我正在创建一个GoogleSheets插件,它可以进行一些数据处理,并允许用户发送和编辑带有最终结果的电子邮件。许多具有电子邮件功能的gsuite附加组件似乎与Gmail的电子邮件草稿表单完全相同,所以我想知道是否有可能包括gmail电子邮件草稿表单,或者让这些附加组件在自己的代码中简单地复制UI?您可以通过使用Google apps script 在我的appscript GUI中包括一个html电子邮件编辑器(类似于gmail发送表单),google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在创建一个GoogleSheets插件,它可以进行一些数据处理,并允许用户发送和编辑带有最终结果的电子邮件。许多具有电子邮件功能的gsuite附加组件似乎与Gmail的电子邮件草稿表单完全相同,所以我想知道是否有可能包括gmail电子邮件草稿表单,或者让这些附加组件在自己的代码中简单地复制UI?您可以通过使用GmailApp.createDraft[1]函数创建gmail UI撰写草稿窗口来创建空草稿,或者,您可以获取要回复的特定消息或线程,并使用该类的createDraft函数,这些函数在
GmailApp.createDraft
[1]函数创建gmail UI撰写草稿窗口来创建空草稿,或者,您可以获取要回复的特定消息或线程,并使用该类的createDraft
函数,这些函数在文档[2]中提到
通过实施Gmail加载项快速启动[3]和撰写草稿指南[2]中的代码和步骤,我得到了以下代码,作为一个加载项使用,单击该按钮将打开对您打开的电子邮件的草稿回复:
function buildAddOn(e) {
// Activate temporary Gmail add-on scopes.
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var messageId = e.messageMetadata.messageId;
var message = GmailApp.getMessageById(messageId);
// Create a section
var section = CardService.newCardSection()
.setHeader("<font color=\"#1257e0\"><b>Create email draft reply</b></font>");
// Action to trigger createReplyDraft funciton
var composeAction = CardService.newAction()
.setFunctionName('createReplyDraft');
// Create button to trigger action when clicked
var composeButton = CardService.newTextButton()
.setText('Compose Reply')
.setComposeAction(composeAction, CardService.ComposedEmailType.STANDALONE_DRAFT);
// Add the button widget to the section.
section.addWidget(composeButton);
// Build the main card after adding the section.
var card = CardService.newCardBuilder()
.setHeader(CardService.newCardHeader()
.setTitle('Create draft response')
.setImageUrl('https://www.gstatic.com/images/icons/material/system/1x/label_googblue_48dp.png'))
.addSection(section)
.build();
return [card];
}
/**
* Creates a draft email (with an attachment and inline image)
* as a reply to an existing message.
* @param {Object} e data passed by the action.
* @return {ComposeActionResponse}
*/
function createReplyDraft(e) {
// Activate temporary Gmail add-on scopes, in this case to allow
// a reply to be drafted.
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
// Creates a draft reply.
var messageId = e.messageMetadata.messageId;
var message = GmailApp.getMessageById(messageId);
var draft = message.createDraftReply('', {
htmlBody: "Kitten!"
})
// 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();
}
函数buildAddOn(e){
//激活临时Gmail附加作用域。
var accessToken=e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var messageId=e.messageMetadata.messageId;
var message=GmailApp.getMessageById(messageId);
//创建一个节
var section=CardService.newCardSection()
.setHeader(“创建电子邮件草稿回复”);
//触发createReplyDraft函数的操作
var composeAction=CardService.newAction()
.setFunctionName('createReplyDraft');
//单击时触发操作的创建按钮
var composeButton=CardService.newTextButton()
.setText('撰写回复')
.setComposeAction(composeAction,CardService.ComposedEmailType.STANDALONE_草稿);
//将按钮小部件添加到部分。
section.addWidget(composeButton);
//添加节后构建主卡。
var card=CardService.newCardBuilder()
.setHeader(CardService.newCardHeader()
.setTitle('创建草稿响应')
.setImageUrl('https://www.gstatic.com/images/icons/material/system/1x/label_googblue_48dp.png'))
.addSection(section)
.build();
返回[卡];
}
/**
*创建草稿电子邮件(带有附件和内联图像)
*作为对现有邮件的答复。
*@param{Object}是操作传递的数据。
*@return{ComposeActionResponse}
*/
函数createReplyDraft(e){
//激活临时Gmail附加作用域,在本例中允许
//待起草的答复。
var accessToken=e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
//创建答复草稿。
var messageId=e.messageMetadata.messageId;
var message=GmailApp.getMessageById(messageId);
var draft=message.createDraftReply(“”{
htmlBody:“小猫!”
})
//返回生成的草稿响应。这将导致Gmail呈现
//为用户编写窗口,预先填充指定的内容
//上面。
return CardService.newComposeActionResponseBuilder()
.setGmailDraft(draft.build();
}
确保清单中包含所使用函数的必要作用域
[1]
[2]
[3] 您的问题可能被认为是堆栈溢出的“离题”,因为它询问的是一般信息,而不是特定的代码行。在应用程序脚本社区中询问此类问题可能更好,网址为: