Как извлечь вложения из файлов MSG - PullRequest
0 голосов
/ 30 марта 2012

Как извлечь вложения из файлов msg, используя python ...? Пример кода будет полезен ...!

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Посмотрите примеры электронной почты , в частности, распаковка сообщения на основе mimetype.

1 голос
/ 30 марта 2012
imap_host = 'imap.gmail.com'
mail = imaplib.IMAP4_SSL(imap_host)
mail.login(user,passw)
mail.select("Inbox")
mail = get_unseen(mail)

result, data = mail.uid('search', None, 'UNSEEN')
uid_list = data[0].split()
print len(uid_list), 'Unseen emails.'

for i in range(len(uid_list)):
    email_uid = uid_list[i]
    res, dat = mail.uid('fetch', email_uid, '(RFC822)')
    raw_email = dat[0][1]
    msg = email.message_from_string(raw_email)

    print ''
    print 'New email:\n'
    print i,'UID:', email_uid, 'Sender:', email.utils.parseaddr(msg['From'])[0],email.utils.parseaddr(msg['From'])[1]      
    print 'Subjct:',msg['Subject']
    print 'Message: '
    print get_body(msg)
    attach_list = get_attach_list(msg)
    print len(attach_list),'Attachments:',attach_list
    get_attach(msg)

def get_body(msg):
    for part in msg.walk():
        content_type = part.get_content_type()
        if content_type == 'text/plain' or content_type =='text/html':
            payload = part.get_payload(decode=True)
            if payload:
                print payload
    return

def get_attach_list(msg):
   attach_list=[]
   for part in msg.walk():
      filename = part.get_filename()
      if filename:
         attach_list.append(filename)
   return attach_list

def get_attach(msg):
    for part in msg.walk():
        filename = part.get_filename()
        if filename:
            fp = open(filename,'wb')
            fp.write(part.get_payload(decode=True))
            fp.close()
    return  

Итак, в основном вы просматриваете всю почту и ищите вложения, а затем, используя get_payload (), загружаете вложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...