【发布时间】:2018-11-29 11:44:24
【问题描述】:
当我发送草稿时,消息 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 会是一个很好的跟踪器;但是如果上面看起来太难了,有没有更好的方法来查找稍后在代码中生成的特定电子邮件?
提前非常感谢!
【问题讨论】:
-
消息 ID 发生了变化,因为它现在是已发送的消息,而不是草稿。回顾一下底层的 Gmail API 和 MIME 消息的详细信息,您会受益匪浅。
-
要将发送的消息 ID 与源草稿 ID 相关联,请使用您喜欢的关联容器,例如
sent[<some key from the draft>].push(message.getId())(当然在前面代码中将相关键初始化为数组之后) -
感谢您的指点!
标签: google-apps-script gmail gmail-api