diff options
Diffstat (limited to 'Doc/lib/email-unpack.py')
-rw-r--r-- | Doc/lib/email-unpack.py | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/Doc/lib/email-unpack.py b/Doc/lib/email-unpack.py deleted file mode 100644 index fc05d99..0000000 --- a/Doc/lib/email-unpack.py +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env python - -"""Unpack a MIME message into a directory of files.""" - -import os -import sys -import email -import errno -import mimetypes - -from optparse import OptionParser - - -def main(): - parser = OptionParser(usage="""\ -Unpack a MIME message into a directory of files. - -Usage: %prog [options] msgfile -""") - parser.add_option('-d', '--directory', - type='string', action='store', - help="""Unpack the MIME message into the named - directory, which will be created if it doesn't already - exist.""") - opts, args = parser.parse_args() - if not opts.directory: - parser.print_help() - sys.exit(1) - - try: - msgfile = args[0] - except IndexError: - parser.print_help() - sys.exit(1) - - try: - os.mkdir(opts.directory) - except OSError, e: - # Ignore directory exists error - if e.errno <> errno.EEXIST: - raise - - fp = open(msgfile) - msg = email.message_from_file(fp) - fp.close() - - counter = 1 - 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_type()) - if not ext: - # Use a generic bag-of-bits extension - ext = '.bin' - filename = 'part-%03d%s' % (counter, ext) - counter += 1 - fp = open(os.path.join(opts.directory, filename), 'wb') - fp.write(part.get_payload(decode=True)) - fp.close() - - -if __name__ == '__main__': - main() |