def generate_email_files(msg):
counter = 1
upload_date = time.mktime(email.utils.parsedate(msg["Date"]))
for part in msg.walk():
# multipart/* are just containers
if part.get_content_maintype() == 'multipart':
continue
# Applications should really sanitize the given filename so that an
# email message can't be used to overwrite important files
filename = part.get_filename()
if not filename:
ext = mimetypes.guess_extension(part.get_content_type())
if not ext:
# Use a generic bag-of-bits extension
ext = '.bin'
filename = 'part-%03d%s' % (counter, ext)
counter += 1
data = part.get_payload(decode=True)
if parse_pathname(filename).ext == '.zip':
for zipfn, zipdata, zipdt in generate_zip_files(data):
yield zipfn, zipdata, zipdt
else:
yield filename, data, upload_date
评论列表
文章目录