Duplicate possible:
Comment envoyer des pièces jointes avec Python
je travaille sur sendEmail avec Python. Je reçois ce code.
import smtplib
def SendAnEmail( usr, psw, fromaddr, toaddr):
# SMTP server
server=smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(usr,psw)
# Send
msg="text message ....... "
server.sendmail(fromaddr, toaddr, msg)
server.quit()
if __== '__main__':
# Fill info...
usr='[email protected]'
psw='password'
fromaddr= usr
toaddr='[email protected]'
SendAnEmail( usr, psw, fromaddr, toaddr)
si j'ai besoin d'ajouter une image (pièce jointe d'une image), comment faire? Quelqu'un a une idée?
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
def SendMail(ImgFileName):
img_data = open(ImgFileName, 'rb').read()
msg = MIMEMultipart()
msg['Subject'] = 'subject'
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
text = MIMEText("test")
msg.attach(text)
image = MIMEImage(img_data, name=os.path.basename(ImgFileName))
msg.attach(image)
s = smtplib.SMTP(Server, Port)
s.ehlo()
s.starttls()
s.ehlo()
s.login(UserName, UserPassword)
s.sendmail(From, To, msg.as_string())
s.quit()
Lire la documentation. Les dernières lignes de la documentation smtpblib se lisent comme suit:
Remarque En général, vous souhaiterez utiliser les fonctionnalités du package de messagerie pour construire un message électronique, que vous pourrez ensuite convertir en chaîne et envoyer via sendmail (); voir email: exemples.
et vous diriger vers: https://docs.python.org/3/library/email.examples.html
qui a un exemple exact pour cela.