Python调用Gmail API获取指定时间邮件遇AttributeError错误,求解决方案
如何通过Gmail API获取特定时间范围的邮件
我已经用Python实现了Gmail API调用,但运行代码时会提取全部邮件列表。我希望仅获取特定时间范围内的新邮件,尝试了以下代码却报错:
尝试的代码:
# 尝试用这段代码获取指定时间区间的邮件,但执行报错 msg = service.users().messages().list(userId = 'me').setQ('after:1504483200 before:1504915199').execute()
报错信息:
File "F:\AibcAP_Process\gmail.py", line 184, in read_message msg = service.users().messages().list(userId = 'me').setQ('after:1504483200 before:1504915199').execute() AttributeError: 'HttpRequest' object has no attribute 'setQ'
问题原因
报错是因为Gmail API的messages().list()方法不存在setQ()这个调用方式,正确做法是直接将查询条件作为q参数传入list()方法中。
正确代码示例
# 直接在list()方法中传入q参数指定时间范围 msg = service.users().messages().list( userId='me', q='after:1504483200 before:1504915199' ).execute()
额外说明
- 时间格式:除了时间戳,你也可以使用可读性更强的RFC3339格式字符串,比如:
q='after:2017-09-04T00:00:00Z before:2017-09-09T23:59:59Z' - 筛选新邮件:如果要获取该时间范围内的未读邮件,只需在查询条件中添加
is:unread:q='after:1504483200 before:1504915199 is:unread'
内容的提问来源于stack exchange,提问作者rohit kumar
相关产品推荐
相关产品推荐

