2012-08-12 130 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

相关问题