【问题标题】:Selectively get email messsages with Gmail API使用 Gmail API 选择性地接收电子邮件
【发布时间】:2020-01-09 17:27:14
【问题描述】:

我正在尝试获取具有特定内容的消息列表,例如计费电子邮件并在那里处理数据。 为了获取这些消息,我运行以下命令

service.users().messages().list(userId=user_id, page_token=page_token, q=query).execute()

返回所有消息。 我想将我要确认的消息限制为以下条件:

  • 最近两天发送的
  • 如果from: 地址不在电子邮件地址列表(即黑名单)中,则绝对拒绝。通知,脸书
  • 如果from: 地址在电子邮件地址列表(即白名单)中,则绝对接受
  • 查看subject: 是否匹配一组字符串

我知道我可以创建一个匹配电子邮件地址和主题 (from:bill@pge.com AND subject:"Your bill for this month") 的查询,但是如上所述,黑名单和白名单可能会随着我可以接受的供应商的范围和数量而变得非常大增加,主题的情况也类似。所以我的问题是:

  • 查询词的数量有限制吗?
  • 除了生成一个很长的查询字符串结合黑名单白名单和主题 (from:abc@this.com AND NOT from:xyz@that.com AND subject:"Your bill" AND subject:"This month's bill") 之外,还有其他方法可以实现吗?

注意:对于项目设置我主要符合https://developers.google.com/gmail/api/quickstart/python

【问题讨论】:

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


    【解决方案1】:

    您可以使用的查询词的数量没有记录限制。是的,您必须以编程方式创建一个长查询字符串,结合列表中的所有电子邮件。在这里 [1] 你可以检查你可以使用的运算符,最好的方法是这样的:

    1) 使用时间戳为当前日期前 2 天的“after”或“newer”运算符。

    2)-来自:{xxx@xxx.com xxx@xxx.com ...}

    3) 来自:{xxx@xxx.com xxx@xxx.com ...}

    4) 主题:{xxx xxx ...}

    [1]https://support.google.com/mail/answer/7190

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 2017-08-07
      • 2017-03-21
      • 2023-03-02
      • 1970-01-01
      • 2010-09-25
      相关资源
      最近更新 更多