电子邮件附件问题

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'对象,但是当msg1.add_header(...)行运行时,结果为None,因此程序在msg.as_string()中崩溃,因为附件的任何部分都不能有None值。(Traceback显示在generator.py的第118行的_dispatch中,从msg.as_string()许多级别之下,“'NoneType'对象没有属性'get_content_maintype'”)

有人知道问题的原因吗?任何帮助将不胜感激。

Alan Harris-Reid

1个回答

3

使用:

msg.attach(msg1)

@Alan Harris-Reid:如果我的回答对你有帮助,虽然它很简单,但你可以接受它。 - mg.
我应该怎样接受它?你是指“投赞成票”吧? 如果是的话,我现在不能这样做,因为投赞成票需要15个声望,而我目前还没有。 (请原谅我的无知,我对这一切都很新。)祝好! - Alan Harris-Reid
找到了!发现了投票计数下面的勾选框。敬礼。 - Alan Harris-Reid
现在你已经获得了声望资格,因此你也可以投票了! - Alan Harris-Reid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接