如何在python MIMEImage中自定义文件名?

时间:2016-05-04 06:05:59

标签: python email smtp

我使用python SMTP发送带有图片附件的电子邮件。

for parent, dirnames, filenames in os.walk(base_path):
    for file in filenames:
        with open(base_path+file, 'rb') as fp:
            img = MIMEImage(fp.read())
        msg.attach(img)
# Send email
server = smtplib.SMTP(smtp_server, 25)
# server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

然而,当我收到我发送的电子邮件时,图片似乎被重命名为其他生成的名称,如ATT00002.jpg,ATT00003.jpg等。 如何保留原始图片名称?

1 个答案:

答案 0 :(得分:2)

尝试以下代码。这将解决您的问题

for file in filenames:
    with open(base_path+file, 'rb') as fp:
        img = MIMEImage(fp.read())
    img.add_header('Content-Disposition', "attachment; filename= %s" % file)
    msg.attach(img)

您需要将标题添加到MIME PART。