Gmail 插件 createdraftreply() 回复你自己
Gmail addon createdraftreply() replying to yourself
我参考的是官方指南
here
创建回复草稿。
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 data passed by the compose 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! <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();
}
当线程中的最后一条消息来自其他人时,它工作正常,
但当最后一条消息来自你自己时,
新草稿的收件人地址是你的地址,不是对方。
1.
(最后一条消息)其他人→我
createDraftReply()
(草稿)我→其他人
2.
(最后一条消息)我→其他人
createDraftReply()
(草稿)我→我
如何创建包含正确收件人的回复草稿?
在创建回复草稿之前,请检查收件人地址是否为自己。
如果 TO 是自己,则创建回复所有草稿而不是回复草稿
否则创建回复草稿。
if(message.getTo() === Session.getEffectiveUser().getEmail())
这是您可以检查的方式。
或
还有一种方法,你可以遍历所有的邮件,从外部挑选最新的邮件,并为其创建一个回复草稿。
var mssgs = message.getThread().getMessages();
我参考的是官方指南 here
创建回复草稿。
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 data passed by the compose 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! <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();
}
当线程中的最后一条消息来自其他人时,它工作正常, 但当最后一条消息来自你自己时, 新草稿的收件人地址是你的地址,不是对方。
1.
(最后一条消息)其他人→我
createDraftReply()
(草稿)我→其他人
2.
(最后一条消息)我→其他人
createDraftReply()
(草稿)我→我
如何创建包含正确收件人的回复草稿?
在创建回复草稿之前,请检查收件人地址是否为自己。 如果 TO 是自己,则创建回复所有草稿而不是回复草稿 否则创建回复草稿。
if(message.getTo() === Session.getEffectiveUser().getEmail())
这是您可以检查的方式。
或
还有一种方法,你可以遍历所有的邮件,从外部挑选最新的邮件,并为其创建一个回复草稿。
var mssgs = message.getThread().getMessages();