2011-11-28 64 views
0

我正在用Python進行編程。我已經有一個功能,發送一封電子郵件與附件....我唯一的問題是,我想要的消息是HTML,但我不尊重..... .....帶HTML郵件的sendmail

這裏是我使用

def enviarCorreo(fromaddr, toaddr, text, file): 
    msg = MIMEMultipart('mixed') 
    msg['From'] = fromaddr 
    msg['To'] = toaddr 
    msg['Subject'] = 'asunto' 
    msg.attach(MIMEText(text)) 
    #adjunto 
    adjunto = MIMEBase('application', "octet-stream") 
    adjunto.set_payload(open(file, "rb").read()) 
    encode_base64(adjunto) 
    anexo = os.path.basename(file) 
    adjunto.add_header('Content-Disposition', 'attachment; filename= "%s"' % anexo) 
    msg.attach(adjunto) 
    #enviar 
    server = smtplib.SMTP('localhost') 
    server.set_debuglevel(1) 
    server.sendmail(fromaddr, toaddr, msg.as_string()) 
    server.quit() 
    return 

功能,我希望你能告訴我什麼改變或添加什麼,所以我發送消息可能是HTML ....

我現在用的是「混合」多節因爲HTML郵件將包含一些不會附加的圖像,但會成爲郵件的一部分.....

回答

5

更換

msg.attach(MIMEText(text)) 

通過

msg.attach(MIMEText(text, 'html')) 

(默認爲 '平原')

+0

感謝人! 工作非常好! – mauguerra

+1

太棒了。不要忘記獎勵我;-) – gecco

+0

你知道嗎,如果我把放入HTML消息中,並且採用合適的路徑,它會在消息中發揮作用嗎? 我試圖做到這一點,但它只顯示X圖像(未找到圖像)... – mauguerra

2

有發送HTML電子郵件官方文檔頁面上的一個例子 - http://docs.python.org/library/email-examples.html

+0

謝謝,我試着用這個頁面....我的問題是,他們導入這樣做「從email.mine.multipart ----」,我不知道爲什麼不適用於我.....我必須這樣做「從email.MIMEMultipart import MIMEMultipart」 – mauguerra