Blog

Postado em em 28 de agosto de 2021

Localizar E-mail e Anexo Automaticamente com Python

Nessa aula eu vou te mostrar como localizar e-mail e anexo automaticamente na sua caixa de entrada utilizando o Python para essa automação!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Resumo

Nessa aula eu vou te mostrar como você pode criar um código para localizar e-mail ou anexos dentro do seu e-mail com o Python, ou seja, qualquer leitura ou extração de informações de dentro do seu e-mail.

Isso quer dizer que vamos poder integrar Python com e-mail para que você possa obter as informações desejadas de dentro do e-mail para complementar suas atividades ou seus códigos!

Localizar Email e Anexo Automaticamente com Python

Você já imaginou pode fazer uma busca automática de e-mail com Python? Como assim?

Imagine que você quer localizar e-mail e anexo dentro da sua caixa de entrada, agora imagine você podendo fazer isso de forma automática com o Python.

Isso te ajudaria bastante não é mesmo? Ainda mais se você tem que fazer isso diversas vezes ao dia, então hoje eu vou te ensinar a construir essa ferramenta que pode até deixar em uma pasta de códigos úteis sempre que precisar utilizar!

Busca Automática de E-mail com Python

Para poder fazer essa automação no email com Python nós vamos utilizar a biblioteca imap_tools que vai permitir você trabalhar com a integração Python com e-mail de forma simplificada.

OBS: Como a biblioteca não vem instalada, basta instalar no seu editor de Python: pip install imap_tools.

Assim vamos conseguir de forma mais fácil fazer essa busca de informações através desse protocolo imap!

OBS: Vale lembrar que vamos utilizar para essa aula o Jupyter Notebook, então se ainda não tiver o programa instalado basta clicar aqui que temos um post ensinando o passo a passo de instalação! Mas você vai poder utilizar qualquer editor de sua preferência!

Outro ponto interessante é que esse método que vamos utilizar para fazer a integração Python com email vai funcionar para qualquer e-mail, seja ele Gmail, Hotmail, entre outros!

from imap_tools import MailBox, AND

# pegar emails de um remetente para um destinatário
username = "seu_email"
password = "senha"

# lista de imaps: https://www.systoolsgroup.com/imap/
meu_email = MailBox('imap.gmail.com').login(username, password)

# criterios: https://github.com/ikvk/imap_tools#search-criteria
lista_emails = meu_email.fetch(AND(from_="remetente", to="destinatario")) 
for email in lista_emails:
    print(email.subject)
    print(email.text)


# pegar emails com um anexo específico
lista_emails = meu_email.fetch(AND(from_="remetente"))
for email in lista_emails:
    if len(email.attachments) > 0:
        for anexo in email.attachments:
            if "TituloAnexo" in anexo.filename:
                print(anexo.content_type)
                print(anexo.payload)
                with open("Teste.xlsx", 'wb') as arquivo_excel:
                    arquivo_excel.write(anexo.payload)

Esse é o código que vamos utilizar para obter as informações desejadas!

Como nesse exemplo eu vou usar uma conta do Gmail é necessário fazer uma configuração na conta para que você consiga utilizar esse código no seu e-mail, pois os e-mails possuem uma proteção contra automações.

Para isso basta clicar no círculo da sua conta que fica no canto superior direito do seu e-mail e selecionar a opção Gerenciar sua Conta do Google.

Gerenciamento da conta do Google
Gerenciamento da conta do Google

Feito isso nós vamos até a parte de segurança e por fim vamos até a parte de Acesso a app menos seguro. Aqui você vai ter que habilitar essa opção para que consiga utilizar esse código e fazer automação no e-mail com Python.

Habilitando Apps menos seguros no Gmail
Habilitando Apps menos seguros no Gmail

Agora podemos partir para a explicação do código para fazer essa automação!

O primeiro bloco que temos da importação da biblioteca até a linha que começa com meu_email é bem simples.

Vamos ter a importação da biblioteca, em seguida temos as informações de e-mail e senha do seu e-mail.

E por fim estamos fazendo o login dentro do e-mail. Nessa parte é importante que você teste o código até aqui para verificar se de fato está tudo funcionando.

Pois se não estiver funcionando nada depois vai funcionar, então é bom verificar se está tudo ok e se liberou os apps menos seguros no seu e-mail ou alguma configuração similar no seu servidor de e-mail.

OBS: Os e-mails possuem essa proteção para evitar esses acessos remotos e evitar automações desnecessárias, então se você não desativar essa proteção não vai conseguir utilizar o código.

O segundo bloco do nosso código é para que possamos obter e-mails de acordo com alguns critérios.

Lembrando que no próprio código já deixamos o link para a documentação da biblioteca, então se tiver dúvidas pode dar uma olhada para saber quais as informações pode obter.

Então podemos escolher por exemplo, um remetente E (AND operador lógico para E, para satisfazer mais de um critério ao mesmo tempo) destinatário.

Então nesse caso estaríamos buscando um e-mail com um remetente e destinatário específico, então só os e-mails que tiverem essas duas informações satisfeitas ao mesmo tempo que serão obtidas.

Ao rodar essa parte do código com os critérios desejados o programa vai verificar os e-mails que satisfazem essas condições e depois vai printar na tela os assuntos dos e-mails e logo abaixo o conteúdo desse e-mail em texto.

Resultado da busca de e-mails (título + conteúdo)
Resultado da busca de e-mails (título + conteúdo)

Aqui temos um pequeno exemplo do Python mostrando pra você o assunto e o conteúdo de cada um desses e-mails que satisfazem os critérios que colocou.

Agora o último bloco do nosso código é para que você consiga pegar um e-mail que tenha um anexo específico.

Então pode ser que tenha um e-mail do trabalho que tem um nome específico e você quer verificar quantos anexos tem no seu e-mail ou até mesmo pegar as informações desse anexo e salvar um arquivo no seu computador com esse conteúdo.

Então nesse exemplo nós vamos determinar um nome de um anexo que esteja no seu e-mail (nesse caso você pode enviar o arquivo que está disponível para o seu próprio e-mail para fazer o teste) para salvar as informações desse anexo dentro de um arquivo no seu computador.

Então já temos até uma estrutura de repetição que vai fazer a verificação de quantos e-mails temos e depois se eles possuem anexo, se possuir anexo vamos repetir o procedimento de mostrar as informações e salvar o arquivo no formato de Excel.

OBS: Você vai ver que ao rodar esse código você terá um arquivo em Excel criado com as informações do anexo.

Conclusão de Localizar E-mail e Anexo com Python

Nessa aula eu te mostrei como você pode localizar e-mail e anexo específicos para sua atividade.

Tudo isso é para facilitar o seu trabalho, pois você pode buscar por informações específicas e não precisar perder tempo procurando um e-mail ou um arquivo que esteja dentro dele.

Dessa forma você vai conseguir automatizar suas tarefas e até salvar as informações do anexo que tem dentro do seu computador de forma automática e muito rápida.

Assim você vai ganhar produtividade e pode até focar em outras atividades para ser mais eficiente!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador