Разбор email сообщений

Семинар «Разбор email сообщений» является частью обучающих материалов кафедры веб-технологий.

Аннотация

править

Статья предполагает, что у вас есть файл email-сообщения (*.eml) и из него надо вытащить информацию.

Предварительно можете изучить статью о том как получить email-сообщения с сервера.

import email
from os import listdir, path
d = './tmp'
savedir = './tmp_files'
for name in listdir(d):
    f = file(path.join(d,name))
    msg = email.message_from_file(f)
    for part in msg.walk():
        if part.get_content_maintype() == 'multipart':
            continue

        if part.get('Content-Disposition') is None:
            continue

        filename = part.get_filename()
        if not(filename): continue
        if part.get_content_type() == 'message/rfc822':
            continue
        filename = filename.replace(':', '')

        fp = open(path.join(savedir, filename), 'wb')
        fp.write(part.get_payload(decode=1) or '')
        fp.close()
    f.close()