[英]How can I print the subject and body of a GMail email using the python API?
results = service.users().messages().list(
userId='me', labelIds=['INBOX'], maxResults=1).execute()
labels = results.get('messages', [])
if not labels:
print('No labels found.')
else:
print('Labels:')
for label in labels:
print(label['id'])
This script prints the message Id of the most recent email.此脚本打印最新 email 的消息 ID。 How can I print the subject and body of the emails?
如何打印电子邮件的主题和正文? I can't find any documentation on how to do it
我找不到任何有关如何操作的文档
1. To make your coide less confusing it is recommended to call your messages as such rather than as labels: 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. Have a look at the message resource : 2.查看消息资源:
{
"id": string,
"threadId": string,
"labelIds": [
string
],
"snippet": string,
"historyId": string,
"internalDate": string,
"payload": {
object (MessagePart)
},
"sizeEstimate": integer,
"raw": string
}
payload
includes the object MessagePart , that contains the following nested objects: payload
包括 object MessagePart ,其中包含以下嵌套对象:
{
"partId": string,
"mimeType": string,
"filename": string,
"headers": [
{
object (Header)
}
],
"body": {
object (MessagePartBody)
},
"parts": [
{
object (MessagePart)
}
]
}
This resource allows to access both body
, as well as subject
- the latter is contained in the message headers :此资源允许访问
body
和subject
- 后者包含在消息头中:
{
"name": string,
"value": string
}
However, those objects are not being returned with users.messages.list , but only with users.messages.get但是,这些对象不会随users.messages.list返回,而只会随users.messages.get 返回
Sample:样本:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.