2012-10-25 15 views
9

Powiel możliwe:
How to send Email Attachments with pythonZałącznik Obraz wysłać pocztą przy użyciu Python

muszę popracować na SendEmail użyciu Python uzyskać ten kod

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 __name__ == '__main__': 
    # Fill info... 
    usr='[email protected]' 
    psw='password' 
    fromaddr= usr 
    toaddr='[email protected]' 
    SendAnEmail(usr, psw, fromaddr, toaddr) 

jeśli potrzebuję dodać obraz (załącznik obraz), jak to zrobić? ktoś ma pomysł?

Odpowiedz

17
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() 
3

Przeczytaj dokumentację. W ciągu ostatnich kilku linii docs smtpblib przeczytać:

Uwaga: W ogóle, będziemy chcieli, aby korzystać z funkcji z pakietami pocztowego skonstruować wiadomość e-mail, który można następnie przekształcić do łańcucha i wysyłania przez sendmail(); zobacz email: Przykłady.

i wskazać na: http://docs.python.org/library/email-examples.html#email-examples

który ma dokładnie tego przykładem.

+0

Używam tych linii, aby go załadować, ale nie może pracować: msg = MIMEMultipart() msg.attach (. MIMEImage (plik ('linechart.png') read())) –

Powiązane problemy