使用Gmail API选择性接收电子邮件消息

时间:2019-09-06 21:27:02

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

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

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

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

  • 最近两天发送的邮件
  • 如果from:地址不在电子邮件地址列表中(例如黑名单),则绝对拒绝通知,Facebook
  • 绝对接受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

1 个答案:

答案 0 :(得分:0)

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

1)使用带有“时间戳记”的“之后”或“较新的”运算符,时间戳记从当前日期的前2天开始。

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