Вы можете создать черновик пользовательского интерфейса Gmail windows, используя функцию GmailApp.createDraft
[1] для пустого черновика, или вы можете получить конкретное сообщение или ветку c, на которую хотите ответить, и использовать 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();
}
Убедитесь, что в манифесте есть необходимые области для функций, которые вы ' повторное использование.
[1] https://developers.google.com/apps-script/reference/gmail/gmail-app#createdraftrecipient - субъект, тело
[2] https://developers.google.com/gsuite/add-ons/gmail/compose#reply_drafts
[3 ] https://developers.google.com/gsuite/add-ons/gmail/quickstart