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

how can I customize file name in python MIMEImage?

我正在使用 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 等。 如何保留原来的图片名称?

尝试以下方法code.This 将解决您的问题

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 中添加 header。