作为发件人,使用 API 或 headers,是否可以检测电子邮件是否是使用 Gmail 的“计划发送”发送的?

As sender, using API or headers, is it possible to detect if an email was sent using Gmail's “Schedule Send”?

我需要检测是否使用 Gmail[1] 中的“计划发送”工具通过 API 或阅读电子邮件 headers(在发件人 side/inbox).

与此处完全相反的情况:

根据我的经验,预定的电子邮件看起来像是 API 的草稿或收到的电子邮件(您的地址在“发件人”中),然后,它会在发送时引发一个事件将“已发送”标签添加到电子邮件中。有没有办法在活动开始前知道这些是外发电子邮件?

[1] https://support.google.com/mail/answer/9214606?co=GENIE.Platform%3DDesktop&hl=en

问题:

默认情况下您无法检测到。消息 headers 不包含任何与此相关的信息,API 的 Message resource 没有任何字段可以澄清这一点。

此外,即使 Scheduled 是保留的系统标签,因此无法使用该名称创建标签:

Scheduled 不是可以在 API 中找到的标签(例如通过调用 users.labels.list),因此您无法过滤消息(例如使用 users.messages.list)根据他们是否有这个标签。

解决方法:

  • 为计划消息创建自定义标签,并将此标签应用于这些消息:

然后您可以列出包含此标签的邮件。

  • 为此,您应该首先检索相应的 labelId,您可以先调用 users.labels.list.

    来获取它
  • 然后调用users.messages.list,把前面的id加到labelIds,这样就只返回这个标签的消息:

提交功能请求:

我建议您在相应的 Issue Tracker's component 中提交功能请求,以便可以通过 Gmail 以编程方式列出计划邮件 API。

threads = GmailApp.search('is:scheduled')

无法在文档中找到它,刚试过
还有 search for newer_than