Tutoriais

Como Enviar Anexos por Email com Python

Ana Maria Gomes 24 mar Básico 5xp
Compartilhar

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 = '[email protected]'
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'] = '[email protected]'
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 '[email protected]' e 'suasenha' pelos seus dados de acesso ao servidor de email. Além disso, altere '[email protected]' 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!

Cursos gratuitos para continuar aprendendo

Curso
Grátis · 2h 13min

Python para iniciantes: do zero ao primeiro projeto

Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!

Curso
Grátis · 3h 47min

Python para dados: do zero à análise completa

Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!

Curso
Grátis · 4h 11min

Python para IA: do zero ao primeiro chatbot

Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!

Ver todos os cursos

1 comentário

Exclusivo PRO
Faça parte da discussão

Comente e participe da conversa

Crie sua conta gratuita e compartilhe sua opinião nos comentários.

Entre para a Asimov
Avatar de Jean Fabricio
Jean Fabricio há 1 ano

Gostaria de saber como mandar emails em massa com anexo em pdf. Sendo que gostaria de incorporar duas listas: uma de emails e outra dos arquivos. Cada endereço de email um arquivo. Tem como?