Module mimify
[hide private]
[frames] | no frames]

Module mimify

Mimification and unmimification of mail messages.

Decode quoted-printable parts of a mail message or encode using
quoted-printable.

Usage:
        mimify(input, output)
        unmimify(input, output, decode_base64 = 0)
to encode and decode respectively.  Input and output may be the name
of a file or an open file object.  Only a readline() method is used
on the input file, only a write() method is used on the output file.
When using file names, the input and output file names may be the
same.

Interactive usage:
        mimify.py -e [infile [outfile]]
        mimify.py -d [infile [outfile]]
to encode and decode respectively.  Infile defaults to standard
input and outfile to standard output.

Classes [hide private]
File
A simple fake file object that knows about limited read-ahead and boundaries.
HeaderFile
Functions [hide private]
 
mime_decode(line)
Decode a single line of quoted-printable text to 8bit.
 
mime_decode_header(line)
Decode a header line to 8bit.
 
unmimify_part(ifile, ofile, decode_base64=0)
Convert a quoted-printable part of a MIME mail message to 8bit.
 
unmimify(infile, outfile, decode_base64=0)
Convert quoted-printable parts of a MIME mail message to 8bit.
 
mime_encode(line, header)
Code a single line as quoted-printable.
 
mime_encode_header(line)
Code a single header line as quoted-printable.
 
mimify_part(ifile, ofile, is_mime)
Convert an 8bit part of a MIME mail message to quoted-printable.
 
mimify(infile, outfile)
Convert 8bit parts of a MIME mail message to quoted-printable.
Variables [hide private]
  MAXLEN = 200
  CHARSET = 'ISO-8859-1'
  QUOTE = '> '
  qp = re.compile(r'(?i)^content-transfer-encoding:\s*quoted-pri...
  base64_re = re.compile(r'(?i)^content-transfer-encoding:\s*bas...
  mp = re.compile(r'(?is)^content-type:.*multipart/.*boundary="?...
  chrset = re.compile(r'(?is)^(content-type:.*charset=")(us-asci...
  he = re.compile(r'^-*\n')
  mime_code = re.compile(r'(?i)=([0-9a-f][0-9a-f])')
  mime_head = re.compile(r'(?i)=\?iso-8859-1\?q\?([^\? \t\n]+)\?=')
  repl = re.compile(r'(?i)^subject:\s+re: ')
  mime_char = re.compile(r'[=\x7f-\xff]')
  mime_header_char = re.compile(r'[=\?\x7f-\xff]')
  mime_header = re.compile(r'([ \t\(]|^)([-a-zA-Z0-9_\+]*[\x7f-\...
  mv = re.compile(r'(?i)^mime-version:')
  cte = re.compile(r'(?i)^content-transfer-encoding:')
  iso_char = re.compile(r'[\x7f-\xff]')
  usage = 'Usage: mimify [-l len] -[ed] [infile [outfile]]'
  decode_base64 = 0
  encode_args = encode_args+(decode_base64,)

Imports: re, sys, getopt


Function Details [hide private]

mime_encode(line, header)

 

Code a single line as quoted-printable. If header is set, quote some extra characters.


Variables Details [hide private]

qp

Value:
re.compile(r'(?i)^content-transfer-encoding:\s*quoted-printable')

base64_re

Value:
re.compile(r'(?i)^content-transfer-encoding:\s*base64')

mp

Value:
re.compile(r'(?is)^content-type:.*multipart/.*boundary="?([^;"\n]*)')

chrset

Value:
re.compile(r'(?is)^(content-type:.*charset=")(us-ascii|iso-8859-[0-9]+\
)(".*)')

mime_header

Value:
re.compile(r'([ \t\(]|^)([-a-zA-Z0-9_\+]*[\x7f-\xff][-a-zA-Z0-9_\+\x7f\
-\xff]*)(?=[ \t\)]|\n)')