Estou tendo problemas para entender como enviar um anexo por email usando Python. Enviei com sucesso mensagens simples com o smtplib
. Alguém poderia explicar como enviar um anexo em um email. Eu sei que existem outras postagens on-line, mas como iniciante em Python, acho difícil entender.
283
Respostas:
Aqui está outro:
É muito parecido com o primeiro exemplo ... Mas deve ser mais fácil aparecer.
fonte
file
paraf
.part = MIMEApplication(open(f, 'rb').read())
Aqui está a versão modificada do
Oli
para python 3fonte
import pathlib
porfrom pathlib import Path
este é o código que acabei usando:
O código é o mesmo que o post de Oli. Obrigado a todos
Código baseado na postagem do problema de anexo de email do arquivo binário .
fonte
from email.mime.base import MIMEBase
Adaptado daqui .
fonte
smtplib
suporta. Para enviar anexos, você os codifica como uma mensagem MIME e os envia em um email em texto sem formatação. Há um novo módulo python e-mail, no entanto: docs.python.org/library/email.mime.htmlmsg.as_string()
e certamente parece o corpo de um email multipartes MIME. A Wikipedia explica o MIME: en.wikipedia.org/wiki/MIMELine 6, in <module> msg.attach(MIMEText(file("text.txt").read())) NameError: name 'file' is not defined
Outra maneira com o python 3 (se alguém estiver pesquisando):
Certifique-se de permitir " aplicativos menos seguros " em sua conta do Gmail
fonte
Versão do Gmail, trabalhando com o Python 3.6 (observe que você precisará alterar as configurações do Gmail para poder enviar e-mail via smtp a partir dele:
Uso:
Para usar com qualquer outro provedor de email, basta alterar as configurações de smtp.
fonte
O código mais simples que eu pude acessar é:
Foi baseado na documentação oficial do Django
fonte
Outras respostas são excelentes, embora eu ainda quisesse compartilhar uma abordagem diferente, caso alguém estivesse procurando alternativas.
A principal diferença aqui é que, usando essa abordagem, é possível usar HTML / CSS para formatar sua mensagem, para que você seja criativo e dê um estilo ao seu email. Embora você não seja obrigado a usar HTML, também pode usar apenas texto sem formatação.
Observe que esta função aceita enviar o email para vários destinatários e também permite anexar vários arquivos.
Eu só tentei isso no Python 2, mas acho que deve funcionar bem no 3 também:
Eu espero que isso ajude! :-)
fonte
Para obter uma explicação, você pode usar este link, que explica corretamente https://medium.com/@sdoshi579/to-send-an-email-along-with-attachment-using-smtp-7852e77623
fonte
fonte
Abaixo está uma combinação do que eu encontrei no post do SoccerPlayer Aqui e o link a seguir que facilitou a anexação de um arquivo xlsx. Encontrado Aqui
fonte
Com o meu código, você pode enviar anexos de e-mail usando o gmail, será necessário:
defina seu endereço do gmail em " SEU SMTP EMAIL AQUI "
defina a senha da sua conta do gmail em " SUA SENHA SMTP AQUI_ "
Na parte ___EMAIL PARA RECEBER A MENSAGEM_, você precisa definir o endereço de email de destino.
Notificação de alarme é o assunto,
Alguém entrou na sala, a imagem em anexo é o corpo
["/home/pi/webcam.jpg"] é um anexo de imagem.
fonte
Você também pode especificar o tipo de anexo que deseja no seu e-mail, como um exemplo que usei pdf:
inspirações / créditos para: http://linuxcursor.com/python-programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-script
fonte