【问题标题】:As sender, using API or headers, is it possible to detect if an email was sent using Gmail's “Schedule Send”?作为发件人,使用 API 或标头,是否可以检测电子邮件是否使用 Gmail 的“计划发送”发送?
【发布时间】:2021-03-25 06:41:00
【问题描述】:

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

与这里完全相反的情况:As a recipient, is it possible to detect if an email was sent via Gmail's "Schedule Send" vs. "Send"?

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

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

【问题讨论】:

    标签: email google-api gmail gmail-api gmail-imap


    【解决方案1】:

    问题:

    默认情况下,您无法检测到这一点。消息头不包含任何与此相关的信息,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 以编程方式列出预定邮件。

    【讨论】:

    • 谢谢!,这证实了我的怀疑。如果我们可以通过 API 读取内部标签“Scheduled”(与其他系统标签一样),检测将非常容易。我将发送功能请求。我无法使用该解决方法,因为我需要在从多个不同帐户收集数据的 ETL 中实施该解决方案。
    猜你喜欢
    • 2020-12-22
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2018-01-26
    相关资源
    最近更新 更多