Python GMail apiclient:从收件箱标签中排除促销和社交网络邮件
我正在尝试使用Python GMail apiclient:从收件箱标签中排除促销和社交网络邮件,python,email,gmail-api,oauth2client,Python,Email,Gmail Api,Oauth2client,我正在尝试使用apiclient和oauth2client库(从这里快速启动:)获取我的最后一封邮件 我现在能够检索我所有的最后一封邮件,包括促销邮件和社交网络邮件(我不在乎) 脚本如下(如果您发现一些错误或加快速度的方法,请告诉我): 因此,我的目标是从列表中删除促销和社交网络邮件。有什么方法可以做到这一点吗?在向messages.list发送请求时,将q=category:primary与labelIds=“收件箱”一起包括在内。我试过了,只能从收件箱中检索电子邮件 答复: 200行 将请求
apiclient
和oauth2client
库(从这里快速启动:)获取我的最后一封邮件
我现在能够检索我所有的最后一封邮件,包括促销邮件和社交网络邮件(我不在乎)
脚本如下(如果您发现一些错误或加快速度的方法,请告诉我):
因此,我的目标是从列表中删除促销和社交网络邮件。有什么方法可以做到这一点吗?在向messages.list发送请求时,将q=category:primary与labelIds=“收件箱”一起包括在内。我试过了,只能从收件箱中检索电子邮件 答复: 200行
将请求与labelIds=“收件箱”一起发送到messages.list时,包括q=category:primary。我试过了,只能从收件箱中检索电子邮件 答复: 200行
完美的我刚刚找到了另一个解决方案,使用
labelIds=[“收件箱”,“个人分类”]
,但我没有收到所有的邮件。你的解决方案更好。非常感谢。完美的我刚刚找到了另一个解决方案,使用labelIds=[“收件箱”,“个人分类”]
,但我没有收到所有的邮件。你的解决方案更好。非常感谢。
# ... credentials mechanism identical to the quickstart one
gmail_service = build('gmail', 'v1', http=http
# Get the last mails :
last_mails = gmail_service.users().messages().list(userId="me", labelIds=["INBOX"]).execute()
for mailIds in last_mails["messages"]:
all_infos = gmail_service.users().messages().get(userId="me", id=mailIds["id"]).get(userId="me", id=mailIds["id"]).execute()
abstract = all_infos["snippet"]
# Changing json structure
headers = dict([(x["name"], x["value"]) for x in all_infos["payload"]["headers"]])
dest = headers["Delivered-To"]
source = headers["From"]
title = headers["Subject"]
print "Mail : %s\nFrom : %s\nTo : %s\nAbst : %s\n-------" % (
title, source, dest, abstract
)
- Show headers -
{
"messages": [
{
"id": "14d0078c4b6e7b95",
"threadId": "14d0078c4b6e7b95"
},
{
"id": "14d0057a75894568",
"threadId": "14d0057a75894568"
},
{
"id": "14d004211587e8c0",
"threadId": "14d004211587e8c0"
},
{
"id": "14cfed9aef9e1217",
"threadId": "14cfed9aef9e1217"
},