Um código de exemplo que pode ser facilmente adaptado para outras funções além de obter a última mensagem recebida no Gmail.
É apenas uma demonstração de como se faz cada etapa de acessar, identificar o email, obter o conteúdo, parseá-lo e exibí-lo um email recebido no Gmail.
import email import imaplib #Conecta ao servidor imap do gmail m = imaplib.IMAP4_SSL("imap.gmail.com",993) #Efetua o login m.login("<login>@gmail.com","<senha>") #Seleciona a caixa de entrada 'INBOX' m.select() #Obtem a ultima mensagem recebida latest_email_uid = m.uid('search',None,"ALL")[1][0].split()[-1] #Obtem o conteudo txt de todo o email raw_email = m.uid('fetch', latest_email_uid, '(RFC822)')[1][0][1] #Efetua o parseamento do conteudo txt do email para dar significado aos dados existentes no txt email_message = email.message_from_string(raw_email.decode()) ''' Possivel dados que pode ser obtidos de email_message, object resultado do parseamento da mensagem txt Delivered-To Received Return-Path Received-SPF Authentication-Results X-Received DKIM-Signature DKIM-Signature X-Received X-BeenThere Received X-Received Date From To Message-Id In-Reply-To References Subject MIME-Version X-Original-Sender Reply-To Precedence Mailing-list List-ID X-Google-Group-Id List-Post List-Help List-Archive Sender List-Subscribe List-Unsubscribe Content-Type ''' #Exemplo de como obter estes dados de email_message print(email_message['To']) print(email_message['From']) print(email_message['Subject']) print(email_message['Content-Type']) #Uma das formas de obter o corpo do conteúdo do email maintype = email_message.get_content_maintype() if maintype == 'multipart': for part in email_message.get_payload(): if part.get_content_maintype() == 'text': body = part.get_payload() elif maintype == 'text': body = email_message.get_payload() #Exibindo o corpo do último email print(body)