新的Python Gmail API - 仅从昨天检索邮件

时间:2015-12-29 16:02:41

标签: python gmail-api

我已经将一些脚本更新到新的Python Gmail API。但是,我很困惑如何更新以下内容,以便我只从昨天检索邮件。谁能告诉我怎么做?

我目前唯一可以看到的方法是遍历所有消息,只解析那些在正确时间范围内具有时代的消息。但是,如果我有1000条消息,这似乎非常低效。必须有一种更有效的方法来做到这一点。

{{1}}

1 个答案:

答案 0 :(得分:2)

您可以将查询传递给搜索日期范围内的邮件的messages.list方法。您实际上可以使用任何query supported by Gmail's advanced search

你这样做,只会返回消息。

message = service.users().messages().list(userId='me').execute()

但是可以通过传递q关键字参数以及指定before:after:关键字的查询来搜索昨天发送的邮件。

from datetime import date, timedelta

today = date.today()
yesterday = today - timedelta(1)

# do your setup...

user_id = 'user email address'

# Dates have to formatted in YYYY/MM/DD format for gmail
query = "before: {0} after: {1}".format(today.strftime('%Y/%m/%d'),
                                        yesterday.strftime('%Y/%m/%d'))

response = service.users().messages().list(userId=user_id,
                                           q=query).execute()
# Process the response for messages...

您也可以针对他们的GMail messages.list reference page尝试此操作。