mirror of
https://github.com/python/cpython.git
synced 2025-09-15 05:06:12 +00:00
Merge email package 4.0 from the sandbox, including documentation, test cases,
and NEWS updates.
This commit is contained in:
parent
9ae019bf5b
commit
40ef0067ad
44 changed files with 3821 additions and 468 deletions
|
@ -1,59 +1,44 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
"""Unpack a MIME message into a directory of files.
|
||||
"""Unpack a MIME message into a directory of files."""
|
||||
|
||||
Usage: unpackmail [options] msgfile
|
||||
|
||||
Options:
|
||||
-h / --help
|
||||
Print this message and exit.
|
||||
|
||||
-d directory
|
||||
--directory=directory
|
||||
Unpack the MIME message into the named directory, which will be
|
||||
created if it doesn't already exist.
|
||||
|
||||
msgfile is the path to the file containing the MIME message.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
import getopt
|
||||
import sys
|
||||
import email
|
||||
import errno
|
||||
import mimetypes
|
||||
import email
|
||||
|
||||
|
||||
def usage(code, msg=''):
|
||||
print >> sys.stderr, __doc__
|
||||
if msg:
|
||||
print >> sys.stderr, msg
|
||||
sys.exit(code)
|
||||
from optparse import OptionParser
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], 'hd:', ['help', 'directory='])
|
||||
except getopt.error, msg:
|
||||
usage(1, msg)
|
||||
parser = OptionParser(usage="""\
|
||||
Unpack a MIME message into a directory of files.
|
||||
|
||||
dir = os.curdir
|
||||
for opt, arg in opts:
|
||||
if opt in ('-h', '--help'):
|
||||
usage(0)
|
||||
elif opt in ('-d', '--directory'):
|
||||
dir = arg
|
||||
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:
|
||||
usage(1)
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
os.mkdir(dir)
|
||||
os.mkdir(opts.directory)
|
||||
except OSError, e:
|
||||
# Ignore directory exists error
|
||||
if e.errno <> errno.EEXIST: raise
|
||||
if e.errno <> errno.EEXIST:
|
||||
raise
|
||||
|
||||
fp = open(msgfile)
|
||||
msg = email.message_from_file(fp)
|
||||
|
@ -74,8 +59,8 @@ def main():
|
|||
ext = '.bin'
|
||||
filename = 'part-%03d%s' % (counter, ext)
|
||||
counter += 1
|
||||
fp = open(os.path.join(dir, filename), 'wb')
|
||||
fp.write(part.get_payload(decode=1))
|
||||
fp = open(os.path.join(opts.directory, filename), 'wb')
|
||||
fp.write(part.get_payload(decode=True))
|
||||
fp.close()
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue