web-dev-qa-db-fra.com

Image de pièce jointe à envoyer par courrier en utilisant Python

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?

11
user1223495
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()
24
user1292828

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.

0
Jonathan Vanasco