作为发件人,使用 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
我需要检测是否使用 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