如何通过gmail api获取内容['payload']['body']['data']第一封邮件

Nor*_*ori 2 python python-3.x gmail-api

我正在尝试通过 gmail api 获取邮件正文。

message = self.service.users().messages().get(userId=user, id=i,format='full').execute()
Run Code Online (Sandbox Code Playgroud)

当我输入最后一个电子邮件 ID 时。总是找不到内容 content['payload']['body']['data']

节目是这样的

"body": {
    "size": 0
}
Run Code Online (Sandbox Code Playgroud)

当然它有消息体。

我可以通过content['snippet'],但我无法获得消息正文。

如果您对此有任何想法,请帮助我。

Nor*_*ori 7

我用这种方法解决了我的问题。谢谢田池!

def data_encoder(text):
    if len(text)>0:
        message = base64.urlsafe_b64decode(text)
        message = str(message, 'utf-8')
        message = email.message_from_string(message)
    return message


def readMessage(content)->str:
    message = None
    if "data" in content['payload']['body']:
        message = content['payload']['body']['data']
        message = data_encoder(message)
    elif "data" in content['payload']['parts'][0]['body']:
        message = content['payload']['parts'][0]['body']['data']
        message = data_encoder(message)
    else:
        print("body has no data.")
    return message
Run Code Online (Sandbox Code Playgroud)