2010-04-29 97 views
3

我想使用以下代码来发送带有附件的电子邮件(Python的3.1) (大大简化以示出的例子)电子邮件附件问题

from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 

msg = MIMEMultipart() 
msg['From'] = from_addr 
msg['To'] = to_addr 
msg['Subject'] = subject 
msg.attach(MIMEText(body)) 

fp = open(att_file) 
msg1 = MIMEText(fp.read()) 
attachment = msg1.add_header('Content-Disposition', 'attachment', filename=att_file) 
msg.attach(attachment) 

# set string to be sent as 3rd parameter to smptlib.SMTP.sendmail() 
send_string = msg.as_string() 

附接对象MSG1返回“email.mime.text .MIMEText'object at',但是当msg1.add_header(...)行运行时,结果为None,因此程序在msg.as_string()中失效,因为附件的任何部分都不能有None值。 (Traceback在generator.py中的_dispatch的第118行中显示“'NoneType'对象没有属性'get_content_maintype'”,从msg.as_string()开始有很多级别)

有没有人知道问题的原因可能是什么是?任何帮助,将不胜感激。

艾伦·哈里斯 - 里德

回答

3

用途:

msg.attach(msg1) 
+0

由于MG - 现在工作得很好。非常感谢 - 艾伦 – 2010-04-29 23:37:49

+0

@Alan Harris-Reid:如果我的回答对你有帮助,虽然它很微不足道,但你可以接受。 – 2010-04-30 06:00:17

+0

我该如何接受?你的意思是“投票”?如果是这样,我目前还不能,因为投票需要15个声望,而我现在还没有。 (请原谅我的无知,但我是新手。)问候。 – 2010-05-03 22:02:56