J'ai des problèmes pour comprendre comment envoyer une pièce jointe par e-mail à l'aide de Python. J'ai envoyé avec succès des messages simples avec le smtplib
. Quelqu'un pourrait-il expliquer comment envoyer une pièce jointe dans un e-mail? Je sais qu'il y a d'autres articles en ligne mais en tant que débutant Python, je les trouve difficiles à comprendre.
283
Réponses:
En voici une autre:
C'est à peu près la même chose que le premier exemple ... Mais il devrait être plus facile de passer.
la source
file
enf
.part = MIMEApplication(open(f, 'rb').read())
Voici la version modifiée de
Oli
pour python 3la source
import pathlib
parfrom pathlib import Path
c'est le code que j'ai fini par utiliser:
Le code est à peu près le même que celui d'Oli. Merci a tous
Code basé sur le message de problème de pièce jointe au fichier binaire .
la source
from email.mime.base import MIMEBase
Adapté d' ici .
la source
smtplib
prend en charge. Pour envoyer des pièces jointes, vous les codez en tant que message MIME et les envoyez dans un e-mail en texte brut. Il y a cependant un nouveau module de messagerie python: docs.python.org/library/email.mime.htmlmsg.as_string()
et il ressemble certainement au corps d'un e-mail multipartie MIME. Wikipedia explique MIME: en.wikipedia.org/wiki/MIMELine 6, in <module> msg.attach(MIMEText(file("text.txt").read())) NameError: name 'file' is not defined
Une autre façon avec python 3 (si quelqu'un cherche):
Assurez-vous d'autoriser les « applications moins sécurisées » sur votre compte Gmail
la source
Version Gmail, fonctionnant avec Python 3.6 (notez que vous devrez modifier vos paramètres Gmail pour pouvoir envoyer des e-mails via smtp à partir de celui-ci:
Usage:
Pour l'utiliser avec n'importe quel autre fournisseur de messagerie, modifiez simplement les configurations smtp.
la source
Le code le plus simple auquel j'ai pu accéder est:
Il était basé sur la documentation officielle de Django
la source
Les autres réponses sont excellentes, même si je voulais toujours partager une approche différente au cas où quelqu'un chercherait des alternatives.
La principale différence ici est qu'en utilisant cette approche, vous pouvez utiliser HTML / CSS pour formater votre message, afin que vous puissiez faire preuve de créativité et donner du style à votre e-mail. Bien que vous ne soyez pas obligé d'utiliser HTML, vous pouvez également utiliser uniquement du texte brut.
Notez que cette fonction accepte d'envoyer l'e-mail à plusieurs destinataires et permet également de joindre plusieurs fichiers.
J'ai seulement essayé cela sur Python 2, mais je pense que cela devrait bien fonctionner sur 3 également:
J'espère que ça aide! :-)
la source
Pour explication, vous pouvez utiliser ce lien qu'il explique correctement https://medium.com/@sdoshi579/to-send-an-email-along-with-attachment-using-smtp-7852e77623
la source
la source
Vous trouverez ci-dessous une combinaison de ce que j'ai trouvé dans le post de SoccerPlayer ici et du lien suivant qui m'a permis de joindre plus facilement un fichier xlsx. Trouvé ici
la source
Avec mon code, vous pouvez envoyer des pièces jointes par e-mail à l'aide de gmail, vous devrez:
définissez votre adresse gmail sur " VOTRE E-MAIL SMTP ICI "
définissez le mot de passe de votre compte gmail sur " VOTRE MOT DE PASSE SMTP ICI_ "
Dans la partie ___EMAIL POUR RECEVOIR LE MESSAGE_, vous devez définir l'adresse e-mail de destination.
La notification d'alarme est le sujet,
Quelqu'un est entré dans la pièce, l'image ci-jointe est le corps
["/home/pi/webcam.jpg"] est une pièce jointe d'image.
la source
Vous pouvez également spécifier le type de pièce jointe que vous souhaitez dans votre e-mail, par exemple, j'ai utilisé le pdf:
inspirations / crédits à: http://linuxcursor.com/python-programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-script
la source