使用 Python (2.7.5) 重命名电子邮件附件



我正在寻找一种简单的解决方案来重命名电子邮件中的附件。(我已经在客户电子邮件中存储了~11k CSV文件,并希望重命名它们)

import getpass, imaplib, email, smtplib
...
for item in email_body:
    m = email.message_from_string(item)
    mail_date =  m['date']
    mail_subject =  m['subject']
    if m.get_content_maintype() != 'multipart':
        continue
    for part in m.walk():
        if part.get_content_maintype() == 'multipart':
            continue
        if part.get('Content-Disposition') is None:
            continue
    # the filename
    filename=part.get_filename()
    # my attachment
    payload = part.get_payload(decode=True)

我卡在这里。我以为有一种叫做part.set_filename或类似的东西的方法,但我找不到它。

以下是邮件的摘要:

----next32sdfsdfsdg827463sbc
Content-Type: application/octet-stream; name=HU014_W1345.CSV
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=HU014_W1345.CSV

我测试了这样的东西:

print part['Content-Disposition']

包含文件名:

attachment; filename=HU002_W1342.CSV

如何改变它?

我有同样的任务,这就是我解决它的方式:

part.set_param("filename", your-new-filename, header= 'Content-Disposition')

#your 新文件名以包含其文件扩展名#Old 帖子,但希望这对某人有所帮助!

相关内容

  • 没有找到相关文章

最新更新