使用邮箱python解压缩附件?

时间:2015-07-18 08:40:57

标签: python email

我想在python中使用邮箱库从mbox中提取电子邮件附件。

我使用以下代码提取From,To,Subject,Date,Body

import mailbox    
mbox = mailbox.mbox('/tmp/Personal Folders/Inbox/mbox')
for message in mbox:
    print message['subject']
    print message['To']
    print message['From']
    print message['Date']

如何在每封邮件中查找和提取附件?我是否还需要包含更多库?

2 个答案:

答案 0 :(得分:3)

以下python函数以原生格式提取查找和提取附件:)不要忘记包含

  

导入邮箱

def extractattachements(message):
    if message.get_content_maintype() == 'multipart':
        for part in message.walk():
            if part.get_content_maintype() == 'multipart': continue
            if part.get('Content-Disposition') is None: continue
            filename = part.get_filename()
            print filename
            fb = open(filename,'wb')
            fb.write(part.get_payload(decode=True))
            fb.close()

答案 1 :(得分:0)

使用get_payload()方法(https://docs.python.org/2/library/email.message.html#email.message.Message.get_payload)。

  

返回当前有效负载,它将是Message对象的列表   当is_multipart()为True时,或者当is_multipart()为False时为字符串。

例如:

print message.get_payload()