Gmail插件createdraftreply()回复自己

时间:2018-02-23 13:45:16

标签: gmail-addons

我正在引用官方指南 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()

(草稿)我→我

如何使用正确的收件人创建回复草稿?

1 个答案:

答案 0 :(得分:0)

在创建回复草稿之前,请检查TO地址是否为self。 如果TO是self,则创建回复所有草稿而不是回复草稿 否则创建回复草稿。

if(message.getTo() === Session.getEffectiveUser().getEmail())

这是你可以检查的方式。

OR

还有一种方法,您可以遍历所有电子邮件并从局外人那里选择最新邮件并为其创建回复草稿。

var mssgs = message.getThread().getMessages();