1.为了使您的代码不那么混乱,建议您将消息称为这样而不是标签:
results = service.users().messages().list(
userId='me', labelIds=['INBOX'], maxResults=1).execute()
messages = results.get('messages', [])
if not messages:
print('No messages found.')
else:
print('Messages:')
for message in messages:
print(message['id'])
2。看看message resource:
{
"id": string,
"threadId": string,
"labelIds": [
string
],
"snippet": string,
"historyId": string,
"internalDate": string,
"payload": {
object (MessagePart)
},
"sizeEstimate": integer,
"raw": string
}
payload 包括对象MessagePart,其中包含以下嵌套对象:
{
"partId": string,
"mimeType": string,
"filename": string,
"headers": [
{
object (Header)
}
],
"body": {
object (MessagePartBody)
},
"parts": [
{
object (MessagePart)
}
]
}
此资源允许访问body 和subject - 后者包含在消息headers 中:
{
"name": string,
"value": string
}
但是,这些对象不会与users.messages.list一起返回,而只会与users.messages.get一起返回
示例:
results = service.users().messages().list(
userId='me', labelIds=['INBOX'], maxResults=1).execute()
messages = results.get('messages', [])
if not messages:
print('No messages found.')
else:
print('Messages:')
for message in messages:
print(message['id'])
messageResource = service.users().messages().get(userId="me",id=message['id']).execute()
headers=messageResource["payload"]["headers"]
subject= [j['value'] for j in headers if j["name"]=="Subject"]
print(subject)