Sitemap
Gabriel H. Silva

Gabriel H. Silva

Analista de sistemas e estudante de ciência de dados. Procuro crescimento pessoal e profissional. Nunca parar de aprender para nunca parar de ensinar.

Como acessar e-mails com Python.

2 min readFeb 12, 2023
Press enter or click to view image in full size
Photo by Justin Morgan on Unsplash

Automação é umas das coisas mais importantes hoje em dia, seja na vida pessoal ou dentro de uma empresa. Esse artigo mostra como podemos acessar nossa caixa de e-mail usando poucas linhas de código em Python.

Vamos começar instalando a biblioteca imap_tools usando PIP no terminal.

pip install imap_tools

Importando a biblioteca da seguinte forma, podemos criar as variáveis para o e-mail e senha. Iremos utilizar o método Mailbox para fazer login e ter acesso a caixa de entrada, então também vamos criar uma variável login para ele.

from imap_tools import Mailbox, AND

meu_email = 'meuemail@...'
senha = '12345678'

login = Mailbox('imap.zoho.com').login(meu_email, senha)

Irei utilizar a zoho nesse exemplo. A Google desativou o acesso de terceiros por e-mail e senha, então esse método não é mais possível no Gmail. Nos demais serviços de e-mail o processo é o mesmo.

Get Gabriel H. Silva’s stories in your inbox

Join Medium for free to get updates from this writer.

Devemos ativar o acesso via imap no nosso e-mail. Para o zoho:

  1. Configurações
  2. Contas de e-mail
  3. IMAP
    Deixar marcado o “Acesso IMAP” e salvar.

Feito isso, vamos criar uma variável para pegar os e-mails. Vamos utilizar a função fetch para pegar todos os e-mails e nesse exemplo utilizarei o método AND(importado anteriormente) como parâmetro para filtrar por e-mails enviados por mim(from_) e para mim(to). Para saber mais sobre os parâmetros que podem ser usados, acesse o repositório da biblioteca: imap_tools.

from imap_tools import Mailbox, AND

meu_email = 'meuemail@...'
senha = '12345678'

login = Mailbox('imap.zoho.com').login(meu_email, senha)

lista_emails = login.fetch(AND(from_=meu_email, to=meu_email))

A variável lista_emails é um objeto que podemos transformar em lista, o e-mail mais recente sempre estará na ultima posição da lista, o código ficará assim:

from imap_tools import Mailbox, AND

meu_email = 'meuemail@...'
senha = '12345678'

login = Mailbox('imap.zoho.com').login(meu_email, senha)

lista_emails = login.fetch(AND(from_=meu_email, to=meu_email))

email = list(lista_emails)[-1]

O e-mail mais recente enviado por mim e para mim está nesse formato.

Press enter or click to view image in full size

Podemos usar o atributo .text na variável email para pegar o corpo do e-mail em formato de texto.

from imap_tools import Mailbox, AND

meu_email = 'meuemail@...'
senha = '12345678'

login = Mailbox('imap.zoho.com').login(meu_email, senha)

lista_emails = login.fetch(AND(from_=meu_email, to=meu_email))

email = list(lista_emails)[-1]

print(email.text)

Ao printar teremos o resultado:

Conteúdo do e-mail.

--

--

Gabriel H. Silva
Gabriel H. Silva

Written by Gabriel H. Silva

0 followers

Analista de sistemas e estudante de ciência de dados. Procuro crescimento pessoal e profissional. Nunca parar de aprender para nunca parar de ensinar.