GmailDraft.send()更改邮件ID:如何覆盖它?

时间:2018-11-29 11:44:24

标签: google-apps-script gmail gmail-api

发送草稿时,消息ID会更改,如下代码所示。

// make draft
var draft = GmailApp.createDraft("test@gmail.com", "Email Subject", "Email Body");
var draftId = draft.getMessage().getId();

// send draft
var message = draft.send();
var messageId = message.getId();

// this returns 'false'
Logger.log(draftId == messageId);

在两种情况下是否可以覆盖此消息(保持相同的消息ID):

  • 方案1:如上所述以编程方式发送电子邮件时?
  • Scanerio 2:通过在我的gmail页面上单击“发送”来手动发送草稿(使用上述代码生成)时?

关键是要能够找到在我的代码中生成的电子邮件(在其他功能中立即发送或稍后手动发送)。我认为Message ID将是一个很好的跟踪器;但是,如果以上方法看起来太困难,那么以后是否有更好的方法来查找通过代码生成的特定电子邮件?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我找到了一个简单的解决方法:使用线程ID:var threadId = message.getThread().getId();

给定草稿的线程ID和发送该草稿后生成的消息的线程ID完全相同。这就是我一直在寻找的“良好追踪者”。

当然,这并不能直接回答帖子的原始问题,但可以让我做我想做的所有事情(稍后查找由代码生成的特定电子邮件)。