我想用以下代码发送一封带有附件的电子邮件(Python3.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.mimext”object at“,但是当msg1.add_header(…)行运行时,结果为None,因此程序在msg.as_string()中失败,因为附件的任何部分都不能有None值。(回溯显示generator.py中的调度第118行中的“NoneType”对象没有属性“get_content_maintype”,比msg.as_string()低很多级别)
有人知道问题的原因吗?任何帮助都将不胜感激。
艾伦哈里斯里德
最佳答案
使用:
msg.attach(msg1)