Como Enviar Anexos por Email com Python

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

Enviar anexos por email é uma tarefa comum no dia a dia de muitos profissionais. Seja para compartilhar documentos, imagens ou qualquer outro tipo de arquivo, o envio de anexos é uma funcionalidade essencial dos serviços de email. Para quem está começando no mundo da programação com Python, pode parecer um desafio realizar essa tarefa de forma automatizada. No entanto, com as bibliotecas certas e um pouco de código, você pode facilmente enviar anexos por email utilizando Python. Neste tutorial, vamos aprender como fazer isso passo a passo.

clipe de papel cor de rosa

Preparando o Ambiente

Antes de começarmos a escrever nosso código, precisamos garantir que temos tudo o que é necessário para o envio de emails com anexos em Python. A biblioteca que vamos utilizar é a Imbox, que facilita a interação com caixas de correio eletrônico. Para instalar a biblioteca, abra o terminal ou prompt de comando e digite:

pip install imbox

Estabelecendo a Conexão com o Servidor de Email

Para enviar um email, precisamos primeiro estabelecer uma conexão com o servidor de email. Vamos utilizar o protocolo IMAP para isso. Abaixo está um exemplo de como fazer essa conexão utilizando a biblioteca Imbox:

from imbox import Imbox

# Substitua pelos seus dados de acesso
host = 'imap.gmail.com'
email = 'seuemail@gmail.com'
password = 'suasenha'

with Imbox(host, username=email, password=password) as imbox:
    print('Conexão estabelecida com sucesso!')

Enviando um Email com Anexo

Agora que já temos a conexão estabelecida, vamos ao que interessa: enviar um email com anexo. Para isso, precisamos criar uma mensagem de email e adicionar o arquivo que desejamos anexar. Veja como fazer isso:

import smtplib
from email.message import EmailMessage

# Criando a mensagem
msg = EmailMessage()
msg['Subject'] = 'Assunto do Email'
msg['From'] = email
msg['To'] = 'destinatario@example.com'
msg.set_content('Corpo do email.')

# Adicionando o anexo
with open('caminho/do/arquivo/anexo.pdf', 'rb') as f:
    file_data = f.read()
    file_name = f.name

msg.add_attachment(file_data, maintype='application', subtype='octet-stream', filename=file_name)

# Enviando o email
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
    smtp.login(email, password)
    smtp.send_message(msg)

print('Email enviado com sucesso!')

No código acima, substitua 'seuemail@gmail.com' e 'suasenha' pelos seus dados de acesso ao servidor de email. Além disso, altere 'destinatario@example.com' pelo email do destinatário e 'caminho/do/arquivo/anexo.pdf' pelo caminho do arquivo que você deseja anexar.

Conclusão

Enviar anexos por email com Python é uma tarefa simples quando temos as ferramentas certas. Com a biblioteca Imbox e o módulo smtplib, você pode automatizar o envio de emails com anexos de forma eficiente e segura. Agora que você aprendeu o básico, experimente modificar o código para atender às suas necessidades específicas e explore outras funcionalidades que essas bibliotecas oferecem. Lembre-se de que a prática leva à perfeição, então continue praticando e logo você estará automatizando todo tipo de tarefa com Python!

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial