How to retrieve the whole message body using Gmail API (python)

same as noogui said but I found that snippet wont return the whole body

when the snippet exceed 200~ chars you will get it under payload.body.data
you can find the whole body using payload.body.data

the catch is that you are getting it base64encoded so you need to decode it 🙂

the following code will do the trick

import base64  
mail = service.users().messages().get(userId=user_id, id=id, format="full").execute()

def parse_msg(msg):
    if msg.get("payload").get("body").get("data"):
        return base64.urlsafe_b64decode(msg.get("payload").get("body").get("data").encode("ASCII")).decode("utf-8")
    return msg.get("snippet") 

Leave a Comment