2012-08-12 131 views
4

可能重複:
How to send Email Attachments with python如何在Python中使用pdf附件發送電子郵件?

我想編輯以下代碼,併發送帶有附件的電子郵件。附件是一個pdf文件,在linux環境下,它位於/home/myuser/sample.pdf下。我應該在下面更改什麼?爲了組成一個正確 格式的MIME消息

import smtplib 
fromaddr = '[email protected]' 
toaddrs = '[email protected]' 
msg = 'Hello' 


# Credentials (if needed) 
username = 'myemail' 
password = 'yyyyyy' 

# The actual mail send 
server = smtplib.SMTP('smtp.gmail.com:587') 
server.starttls() 
server.login(username,password) 
server.sendmail(fromaddr, toaddrs, msg) 
server.quit() 
+3

差不多現在的問題。你能解釋爲什麼沒有谷歌搜索「smtplib附件文件」的第一頁的結果適合嗎? – 2012-08-12 09:43:09

+2

使用'email'模塊,http://docs.python.org/library/email-examples.html中的示例 – 2012-08-12 09:44:04

+0

@alwbtc:這些搜索結果的第一個鏈接(Jon Clements)給出了答案。你沒有試過/研究過任何東西嗎?上面的電子郵件示例鏈接引用了幾個示例... :) – verisimilitude 2012-08-12 09:48:25

回答

14

你在這種情況下創建一個電子郵件包的消息 -

from email.MIMEMultipart import MIMEMultipart 
from email.MIMEText import MIMEText 
from email.MIMEImage import MIMEImage 
msg = MIMEMultipart() 
msg.attach(MIMEText(file("/home/myuser/sample.pdf").read())) 

,然後發送郵件。這裏

import smtplib 
mailer = smtplib.SMTP() 
mailer.connect() 
mailer.sendmail(from_, to, msg.as_string()) 
mailer.close() 

幾個例子 - http://docs.python.org/library/email-examples.html

+1

非常感謝。這是一種讓stackoverflow成爲地球上最好的網站的答案。我忽略了侮辱性評論。 – alwbtc 2012-08-12 13:41:58

+4

先生,我有最大的動力,相信我。 – alwbtc 2014-04-02 12:17:59

+2

我不知道自答案以來這是否發生了變化。但現在對我來說,工作的類型是pdf的MIMEApplication。 – Santiago 2015-05-22 17:45:19

相關問題