首页 > 解决方案 > 作为发件人,使用 API 或标头,是否可以检测电子邮件是否使用 Gmail 的“计划发送”发送?

问题描述

我需要的是检测是否使用 Gmail[1] 中的“计划发送”工具、通过 API 或读取电子邮件标题(在发件人端/收件箱上)发送电子邮件。

与此处完全相反的情况:作为收件人,是否可以检测电子邮件是否通过 Gmail 的“计划发送”与“发送”发送?

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

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

标签: emailgoogle-apigmailgmail-apigmail-imap

解决方案


问题:

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

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

在此处输入图像描述

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

解决方法:

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

在此处输入图像描述

然后,您可以列出包含此标签的消息。

  • 为此,您应该首先检索相应labelId的 ,您可以通过首先调用users.labels.list来获取它。

  • 然后调用users.messages.list并将前一个添加idlabelIds,以便只返回带有此标签的消息:

在此处输入图像描述

提交功能请求:

我建议您在相应的问题跟踪器组件中提交功能请求,以便可以通过 Gmail API 以编程方式列出预定消息。


推荐阅读