使用 gmail python API 如何获取没有标签“已读”的最新电子邮件
Posted
技术标签:
【中文标题】使用 gmail python API 如何获取没有标签“已读”的最新电子邮件【英文标题】:Using the gmail python API how can I get the most recent email that does not have a label "read" 【发布时间】:2021-04-06 01:33:12 【问题描述】:results = service.users().messages().list(userId='me', labelIds=['Label_8507504117657095973'], maxResults=1).execute()
此 sn-p 获取具有任意标签“已读”的最新电子邮件。我如何调整它以获取没有具有此标签的最新电子邮件?
results = service.users().messages().list(userId='me', labelIds!=['Label_8507504117657095973'], maxResults=1).execute()
将=
替换为!=
由于某种原因返回错误不起作用:
results = service.users().messages().list(userId='me', labelIds!=['Label_8507504117657095973''], maxResults=1).execute() SyntaxError: positional argument follows keyword argument
【问题讨论】:
【参考方案1】:答案:
您可以使用 Gmail 搜索运算符进行查询,而不是使用 labelIds
参数。
更多信息:
根据Gmail search operators 上的文档:
您可以使用称为搜索运算符的字词或符号来过滤您的 Gmail 搜索结果。您还可以组合运算符来进一步过滤您的结果。
What you can search by Search operator & example Messages that have a certain label label:
Example: label:friends
因此,您可以在q
参数中使用上述搜索词来删除没有的结果,而不是在labelIds
参数中使用标签ID Label_8507504117657095973
标签:
labelName = "yourLabelName"
results = service.users()
.messages()
.list(userId='me', q="-label:"+labelName, maxResults=1)
.execute()
这将返回一个没有给定标签的结果:
"messages": [
"id": "XXXXXXXXXXXXXXXX",
"threadId": "YYYYYYYYYYYYYYYY"
],
"nextPageToken": "1309905752354234521",
"resultSizeEstimate": 1
参考资料:
Search operators you can use with Gmail - Gmail Help Method: users.messages.list | Gmail API | Google Developers【讨论】:
解码后只会打印多次“maxResults=1”而不是电子邮件。 我不确定我理解你的意思,你能解释一下吗? 它打印这个:b'maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1maxResults=1
但更长
嗯,我不知道你为什么会得到这个结果。您能否编辑您的问题以包括您的完整通话和打印行?
@TheTroupeMaster 你能解释一下未来可能遇到同样问题的其他用户的问题吗?以上是关于使用 gmail python API 如何获取没有标签“已读”的最新电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 java 和 google gmail-api 获取收到的邮件? [关闭]
如何使用 google 联系人 api 在 iOS 应用程序中获取 gmail 联系人?
如何在注册过程中获取多个谷歌凭据(Gmail API、Pub/Sub、联系人)