[Python-checkins] r42860 - in sandbox/trunk/emailpkg/3_0: MANIFEST NEWS README README.txt docs docs/about.html docs/blank.png docs/contents.png docs/email-dir.txt docs/email-mime.txt docs/email-simple.txt docs/email-unpack.txt docs/index.dat docs/index.html docs/index.png docs/internals.pl docs/intlabels.pl docs/labels.pl docs/mimelib.css docs/mimelib.html docs/mimelib.pdf docs/module-email.Charset.html docs/module-email.Encoders.html docs/module-email.Errors.html docs/module-email.Generator.html docs/module-email.Header.html docs/module-email.Iterators.html docs/module-email.Message.html docs/module-email.Parser.html docs/module-email.Utils.html docs/module-email.html docs/modules.png docs/next.png docs/node1.html docs/node10.html docs/node11.html docs/node18.html docs/node19.html docs/node20.html docs/node4.html docs/node6.html docs/node7.html docs/node8.html docs/previous.png docs/pyfav.png docs/up.png

barry.warsaw python-checkins at python.org
Mon Mar 6 02:06:11 CET 2006


Author: barry.warsaw
Date: Mon Mar  6 02:05:58 2006
New Revision: 42860

Added:
   sandbox/trunk/emailpkg/3_0/README.txt
      - copied, changed from r42858, sandbox/trunk/emailpkg/3_0/README
   sandbox/trunk/emailpkg/3_0/docs/
   sandbox/trunk/emailpkg/3_0/docs/about.html
   sandbox/trunk/emailpkg/3_0/docs/blank.png   (contents, props changed)
   sandbox/trunk/emailpkg/3_0/docs/contents.png   (contents, props changed)
   sandbox/trunk/emailpkg/3_0/docs/email-dir.txt
   sandbox/trunk/emailpkg/3_0/docs/email-mime.txt
   sandbox/trunk/emailpkg/3_0/docs/email-simple.txt
   sandbox/trunk/emailpkg/3_0/docs/email-unpack.txt
   sandbox/trunk/emailpkg/3_0/docs/index.dat
   sandbox/trunk/emailpkg/3_0/docs/index.html
   sandbox/trunk/emailpkg/3_0/docs/index.png   (contents, props changed)
   sandbox/trunk/emailpkg/3_0/docs/internals.pl
   sandbox/trunk/emailpkg/3_0/docs/intlabels.pl
   sandbox/trunk/emailpkg/3_0/docs/labels.pl
   sandbox/trunk/emailpkg/3_0/docs/mimelib.css
   sandbox/trunk/emailpkg/3_0/docs/mimelib.html
   sandbox/trunk/emailpkg/3_0/docs/mimelib.pdf   (contents, props changed)
   sandbox/trunk/emailpkg/3_0/docs/module-email.Charset.html
   sandbox/trunk/emailpkg/3_0/docs/module-email.Encoders.html
   sandbox/trunk/emailpkg/3_0/docs/module-email.Errors.html
   sandbox/trunk/emailpkg/3_0/docs/module-email.Generator.html
   sandbox/trunk/emailpkg/3_0/docs/module-email.Header.html
   sandbox/trunk/emailpkg/3_0/docs/module-email.Iterators.html
   sandbox/trunk/emailpkg/3_0/docs/module-email.Message.html
   sandbox/trunk/emailpkg/3_0/docs/module-email.Parser.html
   sandbox/trunk/emailpkg/3_0/docs/module-email.Utils.html
   sandbox/trunk/emailpkg/3_0/docs/module-email.html
   sandbox/trunk/emailpkg/3_0/docs/modules.png   (contents, props changed)
   sandbox/trunk/emailpkg/3_0/docs/next.png   (contents, props changed)
   sandbox/trunk/emailpkg/3_0/docs/node1.html
   sandbox/trunk/emailpkg/3_0/docs/node10.html
   sandbox/trunk/emailpkg/3_0/docs/node11.html
   sandbox/trunk/emailpkg/3_0/docs/node18.html
   sandbox/trunk/emailpkg/3_0/docs/node19.html
   sandbox/trunk/emailpkg/3_0/docs/node20.html
   sandbox/trunk/emailpkg/3_0/docs/node4.html
   sandbox/trunk/emailpkg/3_0/docs/node6.html
   sandbox/trunk/emailpkg/3_0/docs/node7.html
   sandbox/trunk/emailpkg/3_0/docs/node8.html
   sandbox/trunk/emailpkg/3_0/docs/previous.png   (contents, props changed)
   sandbox/trunk/emailpkg/3_0/docs/pyfav.png   (contents, props changed)
   sandbox/trunk/emailpkg/3_0/docs/up.png   (contents, props changed)
Removed:
   sandbox/trunk/emailpkg/3_0/NEWS
   sandbox/trunk/emailpkg/3_0/README
Modified:
   sandbox/trunk/emailpkg/3_0/MANIFEST
Log:
Add docs, remove NEWS, move README to README.txt.


Modified: sandbox/trunk/emailpkg/3_0/MANIFEST
==============================================================================
--- sandbox/trunk/emailpkg/3_0/MANIFEST	(original)
+++ sandbox/trunk/emailpkg/3_0/MANIFEST	Mon Mar  6 02:05:58 2006
@@ -1,7 +1,6 @@
 setup.py
 testall.py
-NEWS
-README
+README.txt
 LICENSE.txt
 email/_compat21.py
 email/_compat22.py
@@ -83,10 +82,15 @@
 docs/email-mime.txt
 docs/email-simple.txt
 docs/email-unpack.txt
+docs/index.dat
 docs/index.html
 docs/index.png
+docs/internals.pl
+docs/intlabels.pl
+docs/labels.pl
 docs/mimelib.css
 docs/mimelib.html
+docs/mimelib.pdf
 docs/module-email.Charset.html
 docs/module-email.Encoders.html
 docs/module-email.Errors.html
@@ -110,4 +114,5 @@
 docs/node7.html
 docs/node8.html
 docs/previous.png
+docs/pyfav.png
 docs/up.png

Deleted: /sandbox/trunk/emailpkg/3_0/NEWS
==============================================================================
--- /sandbox/trunk/emailpkg/3_0/NEWS	Mon Mar  6 02:05:58 2006
+++ (empty file)
@@ -1,594 +0,0 @@
-Copyright (C) 2001-2004 Python Software Foundation
-
-Here is a history of user visible changes to this software.
-
-2.5.5 (13-May-2004)
-2.5.4
-2.5.3
-2.5.2
-
-    Lots of bug fixes.
-
-2.5.1 (30-Mar-2003)
-
-    Bug fixes and improved compatibility for Python 2.2.0.
-
-2.5 (21-Mar-2003)
-
-    A few other minor bug fixes.
-
-2.5b1 (11-Mar-2003)
-
-    - Message.get_payload() now recognizes various uuencoded
-      Content-Transfer-Encodings (e.g. x-uuencode).
-
-      When passing decode=True to Message.get_payload() and a
-      low-level decoding error occurs, the payload is returned as-is
-      instead of raising an exception.
-
-    - Header.__init__() and Header.append() now accept an optional
-      argument `errors' which is passed through to the unicode() and
-      ustr.encode() calls.  You can use this to prevent conversion
-      errors by e.g. passing 'replace' or 'ignore'.
-
-      RFC 2822 specifies that long headers should be split at the
-      "highest level syntactic break" possible.  This can only really
-      be determined by the application, and the current API doesn't
-      support arbitrary break points.  As a compromise,
-      Header.encode() grew a `splitchars' argument which provides some
-      control over splitting at higher level syntactic breaks.
-
-      Header.decode_header() now transforms binascii.Errors into
-      email.Errors.HeaderParseErrors when bogus base64 data appears in
-      the header.
-
-      The header splitting and folding algorithms were completely
-      reimplemented, especially when dealing with ASCII headers.
-
-      We now preserve spaces between encoded and non-encode parts in
-      RFC 2047 headers when converting the header to Unicode.  While
-      the RFC is technically ambiguous on this point, this is the
-      behavior most people expect.
-
-    - email.Iterators.body_line_iterator() now takes an optional
-      decode argument, which is passed through to Message.get_payload().
-
-    - The MIMEText constructor used to append a newline to the _text
-      argument if it didn't already end in a newline.  Now it doesn't.
-      This could theoretically break code so it should be considered
-      experimental for 2.5 beta 1.  But it's the right fix, so we'll
-      keep it unless there are howls of derision.
-
-    - The quopriMIME.header_encode() maxlinelen argument now accepts
-      None, which inhibits line breaking.
-
-    - Support for Korean charsets was added to Charset.py.  Also the
-      Charset class grew a __repr__() method.
-
-    - Various and sundry bug fixes, improved RFC conformance, and
-      improved lax parsing.
-
-2.4.3 (14-Oct-2002)
-2.4.2 (10-Oct-2002)
-2.4.1 (07-Oct-2002)
-
-    Last minute patches for the Python 2.2.2 backport.  This includes
-    case insensitivity of character set names, patches for Windows,
-    and some fixes for non-splitting of unspecified 8bit header data.
-
-2.4 (01-Oct-2002)
-
-    - Updated all the documentation.
-
-    - Clarification to the semantics of Header.__init__() and
-      Header.append() when it gets byte strings and Unicode strings as
-      its first argument.  When a byte string is used, the charset
-      must be the encoding of the string, such that unicode(s,charset)
-      succeeds.  When a Unicode string is used, the charset is a hint,
-      and the first of the following to succeed is used: us-ascii, the
-      charset hint, utf-8.
-
-    - A new header encoding flag has been added to the Charset
-      module.  SHORTEST (which cannot be used for body encodings)
-      returns the string either quoted-printable or base64 encoding,
-      whichever is shortest in terms of characters.  This is a good
-      heuristic for providing the most human readable value possible.
-      The utf-8 charset uses SHORTEST encoding by default now.
-
-    - Message.get_content_charset() is a new method that returns the
-      charset parameter on the Content-Type header, unquoted and RFC
-      2231 decoded if necessary.
-
-    - "import email" no longer imports some sub-modules by side-effect.
-
-    - Fixed some problems related to RFC 2231 encoding of boundary and
-      charset parameters on Content-Type headers.  Document that
-      get_param() and get_params() may return values that are strings
-      or 3-tuples.
-
-    - The signature of the non-public function _structure() has
-      changed.
-
-2.3.1 (13-Sep-2002)
-
-    - Minor update to the distutils package.  A file was missing in
-      the email-2.3.tar.gz file.
-
-2.3 (10-Sep-2002)
-
-    - Added support for RFC 2231 encoding.  Patch by Oleg Broytmann
-      (previous patch was for RFC 2231 decoding only).
-
-    - New method Message.replace_header() which replaces the first
-      occurrence of a header with a new value, preserving header order
-      and header name case.  Patch by Skip Montanaro.
-
-    - RFC 2045, section 5.2 states that if the Content-Type: header is
-      invalid, it defaults to text/plain.  Implement simple checks for
-      this in get_content_type(), get_content_maintype(), and
-      get_content_subtype().  These will no longer raise ValueErrors.
-
-    - In non-strict parsing, if no start boundary can be found for a
-      multipart message, the entire body of the message is set as the
-      payload.  Strict parsing such a message will still raise a
-      BoundaryError.
-
-2.2 (23-Jul-2002)
-
-    - Better support for default content types has been added.
-      Specifically:
-
-      o The following methods have been silently deprecated.  At some
-        future release they may be unsilently deprecated:
-        Message.get_type(), Message.get_main_type(),
-        Message.get_subtype().
-
-      o The following methods have been added as a consistent way of
-        getting a message's content type: Message.get_content_type(),
-        Message.get_content_maintype(), Message.get_content_subtype().
-
-        Note that none of these methods take a `failobj' argument
-        because messages always have a default content type.  Usually
-        this type is text/plain, but for messages inside a
-        multipart/digest container, it's message/rfc822.
-
-        Also note that .get_content_maintype() and
-        .get_content_subtype() can raise ValueError exceptions if the
-        default content type doesn't include exactly one slash.
-
-    - The Parser constructor's `strict' flag is exposed to
-      email.message_from_file() and email.message_from_string().
-      Also, non-strict parsing is now the default, since that seems to
-      be the most useful behavior.
-
-    - email.Header.Header.append() now allows the charset argument to
-      be a string, naming a character set.  It will convert these to a
-      Charset instance automatically.
-
-    - The test procedure has changed.  See the README for details.
-      Also, a new torture test has been added.
-
-    - The non-public function email.Iterators._structure() can now
-      take an output file object (which must be suitable for print>>).
-
-2.1 (09-Jul-2002)
-
-    - Support for RFC 2231 by Oleg Broytmann was added.
-
-    - Fixed some representational, parsing, and generation bugs with
-      multipart/digest and message/rfc822 messages.  Now we guarantee
-      that the structure of such messages is something like:
-
-          multipart/digest
-              message/rfc822
-                  text/plain (or whatever the subpart's type is)
-              message/rfc822
-                  text/plain (ditto)
-
-      The encapsulating message/rfc822 object is a multipart of
-      exactly length 1.
-
-      To preserve idempotency, the concept of a "default type" is
-      added to Message objects.  For most messages the default type is
-      text/plain, except for messages at the first level inside a
-      multipart/digest which are message/rfc822.  This default type is
-      not described in the Content-Type: header of the container.
-
-      Message objects thus have new methods get_default_type() and
-      set_default_type(), the latter of which takes a string argument
-      that must be either 'text/plain' or 'message/rfc822'.
-
-      (Some changes were also made to the non-public interface for the
-      Generator class.)
-
-    - The Header class now knows how to split long non-RFC 2047
-      encoded headers (i.e. us-ascii charset) in the RFC 2822
-      recommended way.  Splits are attempted at the "highest-level
-      syntactic breaks" which we define as on parameter semicolons,
-      followed by folding whitespace.  No errors are raised if long
-      headers still exceed the maximum RFC 2822 header length of 998
-      characters after splitting.
-
-    - Other Header class API changes:
-        o All __init__() arguments have default values now.  Also, a
-          new argument continuation_ws has been added (defaults to a
-          single ASCII space).
-        o Rich comparison __eq__ and __ne__ operators are defined
-        o __unicode__() for Python 2.2 by Mikhail Zabaluev
-        o guess_maxlinelen() method has been removed
-        o encode_chunks() is no longer public
-
-    - The email.Header module has grown a function make_header() which
-      takes the output of decode_header() and returns a Header
-      instance.
-
-    - A non-public function email.Iterators._structure() has been
-      added for debugging purposes.
-
-    - MIMEMultipart.__init__() doesn't attach the subparts of the
-      tuple is empty (i.e. there are no subparts).  Fixed a bug
-      related to passing in explicit boundary.
-
-    - Anthony Baxter's patches for non-strict parsing have been added
-      to the Parser class.  There are currently no test cases for
-      non-strict parsing yet.  Other Parser class API changes:
-        o Parser.__init__() grew a strict argument, defaulting to
-          true for backwards compatibility.
-        o parse() and parsestr() both grew a headersonly argument
-          which tells them to stop parsing once the header block is
-          parsed.  The file pointer is left at the start of the body.
-
-    - For RFC 2231 support, added the following functions to the
-      email.Utils module: decode_rfc2231(), encode_rfc2231(),
-      decode_params().
-
-2.0.5 (02-Jun-2002)
-
-    - Two new class/modules MIMEMultipart and MIMENonMultipart have
-      been added.  The former is useful as a concrete class for
-      creating multipart/* parts.  The latter is mostly useful as a
-      base class for other MIME non-multipart subparts.  For example,
-      the MIMEAudio, MIMEImage, and MIMEText clases now derive from
-      MIMENonMultipart.  Note also that MIMENonMultipart.attach()
-      raises a MultipartConversionError.
-
-    - The message structure for message/rfc822 subparts has been
-      changed to be more consistent.  Now message/rfc822 payloads are
-      defined as a list containing exactly one element, the
-      sub-Message object.
-
-    - The callable interface to the Generator class is now silently
-      deprecated in favor of the Generator.flatten() method.
-      __call__() can be 2-3 times slower than the equivalent normal
-      method.
-
-2.0.4 (21-May-2002)
-
-    - Fixed a bug in email.Utils.getaddresses().
-
-2.0.3 (19-May-2002)
-
-    - Fixed some limitations that caused the Parser to not work with
-      CRLF style line-endings.  The parser should now be able to parse
-      any email message with consistent line endings of \r, \n, \r\n.
-
-    - Fixed a bug related to the semantics of the Header class
-      constructor.  If neither maxlinelen or header_name is given, the
-      maximum line length is 76 by default.  If maxlinelen is given,
-      it is always honored.  If maxlinelen is not given, but
-      header_name is given, then a suitable default line length is
-      calculated.
-
-    - Implemented a simpler testing framework.  Now you just need to
-      run "python test.py" in the source directory.
-
-    - Merged with the standard Python cvs tree, with compatibility
-      modules for working in Python 2.1 and Python 2.2.
-
-2.0.2 (26-Apr-2002)
-
-    - Fix a Python 2.1.3 incompatibility in Iterators.py,
-      body_line_iterator().
-
-2.0.1 (10-Apr-2002)
-
-    - Minor bug fixes in the test suite.
-
-    - One minor API change: in Header.append(), the charset is
-      optional, and used to default to the empty Charset().  It now
-      defaults to the charset given in the Header constructor.
-
-2.0 (08-Apr-2002)
-
-    - Message.add_payload() is now deprecated.  Instead use
-      Message.attach() and Message.set_payload().  The former always
-      ensures that the message's payload is a list object, while the
-      latter is used only for scalar payloads (i.e. a string or a
-      single Message object in the case of message/rfc822 types).
-
-    - email.Utils.formataddr(): New function which is the inverse of
-      .parseaddr(); i.e. it glues a realname and an email address
-      together.  This replaces email.Utils.dump_address_pair() which
-      is deprecated.
-
-    - class Charset now has a __str__() method, and implements rich
-      comparison operators for comparison to lower case charset
-      names.
-
-    - encode_7or8bit(): If there is no payload, set the
-      Content-Transfer-Encoding: value to 7bit.
-
-    - Fixes for bugs in generating multipart messages that had exactly
-      zero or one subparts.
-
-1.2 (18-Mar-2002)
-
-    - In the MIMEText class's constructor, the _encoder argument is
-      deprecated.  You will get a DeprecationWarning if you try to use
-      it.  This is because there is a fundamental conflict between
-      _encoder and the fact that _charset is passed to the underlying
-      set_payload() method.  _encoder really makes no sense any more.
-
-    - When Message.set_type() is used to set the Content-Type: header,
-      the MIME-Version: header is always set (overriding any existing
-      MIME-Version: header).
-
-    - More liberal acceptance of parameter formatting, e.g. this is
-      now accepted: Content-Type: multipart/mixed; boundary = "FOO"
-      I.e. spaces around the = sign.
-
-    - Bug fix in Generator related to splitting long lines in a
-      multiline header.
-
-    - In class Charset, __str__() method added, as were __eq__() and
-      __ne__().
-
-    - Charset.get_body_encoding() may now return a function as well as
-      a string character set name.  The function takes a single
-      argument, which is a Message instance, and may change the
-      Content-Transfer-Encoding: header (or do any other manipulations
-      on the message).
-
-    - Charset.from_splittable() added argument to_output which is used
-      to specify whether the input_codec or the output_codec is used
-      for the conversion (by default, the output codec is used).
-
-1.1 (unreleased)
-
-    - No changes since 0.97.  Only the version number has changed.
-
-0.97 (unreleased)
-
-    - Message.set_charset() can now take a string naming a character
-      set in addition to a Charset instance.  In the former case, a
-      Charset is instantiated by passing the string to its
-      constructor.
-
-    - The MIMEText constructor now passes the _charset argument to the
-      underlying set_charset() method.  This makes things consistent
-      at the cost of a minor semantic change: the resulting instance
-      will have a Content-Transfer-Encoding: header where previously
-      it did not.
-
-    - A fix for a crash when quopriMIME.encode() tried to encode a
-      multiline string containing a blank line.
-
-    - New module Header.py which provides a higher level interface for
-      encoded email headers, such as Subject:, From:, and To:.  This
-      module provides an abstraction for composing such headers out of
-      charset encoded parts, and for decoding such headers.  It
-      properly splits lines on character boundaries even for multibyte
-      character sets.
-
-    - New RFC compliant base64 and quoted-printable modules, called
-      base64MIME.py and quopriMIME.py.  These are intended to replace
-      the Python standard base64.py and quopri.py modules, but are
-      geared toward their use conformant to the various MIME email
-      standards.
-
-    - The Message class is much more character set aware and RFC
-      compliant:
-
-        + set_payload() now takes a new optional charset argument
-        + New methods set_charset(), get_charset(), set_param(),
-          del_param(), set_type()
-        + Header parameter quoting is more RFC compliant
-        + get_param() and get_params() now take a new optional unquote
-          argument
-
-    - The Charset module now knows about utf-8, gb2132, and big5
-      codecs, the latter two of which are available independently of
-      Python (see the comments in this module for downloading Chinese,
-      Japanese, and Korean codecs).
-
-      New Charset methods get_body_encoding(), get_output_charset(),
-      encoded_header_len(), header_encode(), and body_encode().
-
-    - The Generator now handles encoding the body, if the message
-      object has a character set.
-
-    - The Utils module has new functions fix_eols() and make_msgid().
-      It also includes a workaround for bugs in parseaddr() when used
-      with Python versions before 2.2.
-
-    - A fix for a Parser bug when parsing multipart/* parts that
-      contain only a single subpart.
-
-0.96 (19-Nov-2001)
-
-    - A fix for email.Utils.formatdate() for "uneven" timezones like
-      Australia/Adelaide and America/St_Johns.
-
-0.95 (09-Nov-2001)
-
-    - A new implementation of email.Utils.formatdate() which makes it
-      more RFC 2822 compliant.
-
-0.94 (25-Oct-2001)
-
-    - A fix for SF bug #472560, extra newlines returned by get_param()
-      when the separating semi-colon shows up on a continuation line
-      (legal, but weird).
-
-0.93 (17-Oct-2001)
-
-    - Fix for SF bug #471918, generator splitting long headers
-      produces dupliaction.  Bug report and fix contributed by Matthew
-      Cowles.
-
-    - If a line could not be split on semicolons in order to produce
-      shorter lines, an attempt is made to split the header on folding
-      white space.  One deficiency still: it won't try to split on
-      both semis and folding whitespace.  Oh well.
-
-0.92 (14-Oct-2001)
-
-    - Iterators.typed_subpart_iterator() should use a 'text/plain'
-      failobj in its get_main_type() call.
-
-    - Added class Parser.HeaderParser which just parses headers and
-      leaves the message as a string payload; it does not recursively
-      parse the body.
-
-0.91 (09-Oct-2001)
-
-    - Added the MIMEAudio class/module for audio/* MIME types.
-      Contributed by Anthony Baxter.
-
-    - Fixed a bug in Message.get_all() where failobj was never
-      returned if no matching fields were found.
-
-0.90 (01-Oct-2001)
-
-    - mimelib has been integrated with Python 2.2.  A compatibility
-      package called email 0.90 is being made available here.  It is
-      significantly different in API from the mimelib package.  See
-      the README for details.  mimelib as a separate package is no
-      longer being supported.
-
-0.6 (17-Sep-2001)
-
-    - Last minute bug fixes.
-
-0.5 (17-Sep-2001)
-
-    - New methods in the top-level mimelib package namespace:
-        + messageFromString() to create an object tree from a string.
-        + messageFromFile() to create an object tree from an open file.
-
-    - New methods in the address.py module:
-        + encode() for encoding to RFC 2047 headers
-        + decode() for decoding from RFC 2047 headers
-
-    - New methods in the Message class:
-        + asString() to get a flat text representation of the object
-          tree.
-        + __str__() same as asString() but includes the Unix-From
-          envelope header in the output.
-        + __contains__() for use with the `in' operator.
-        + attach() is a synonym for add_payload()
-        + getcharsets()
-        + getfilename()
-        + getboundary()
-        + setboundary()
-        + getdecodedpayload()
-        + getpayloadastext()
-        + getbodyastext()
-
-    - Message.preamble and Message.epilogue default to None (they used
-      to not exist by default).
-
-    - Changes to the Generator class:
-        + New optional argument `maxheaderlen' for __init__() controls
-          the maximum length in characters of any header line.
-        + write() isn't the entry point for doing the text generation
-          any more.  This lets us make this method compatible with
-          file-like objects.  Use __call__() semantics instead.
-        + Calling a Generator instance creates the plain text
-          message.  This is the same as the old write() interface
-          except that the optional `unixfrom' argument now defaults to
-          0.
-        + There is a new, undocumented semi-private interface for
-          extending the MIME types Generator can handle.  UTSL.
-
-    - New Encoders.py module contains some useful encoders for Image
-      and Text instances.
-
-    - Text.__init__() has a new _encoder optional argument, which has
-      the same semantics as _encoder for Image.__init__().
-
-    - StringableMixin.py module has been removed, and its
-      functionality merged back into the Message class.
-
-    - MessageParseError doesn't contain line numbers any more.
-
-    - Lots of bug fixes; lots more unit tests.
-
-0.4 (09-Jul-2001)
-
-    - New module/class called RFC822 which represents message/rfc822
-      MIME types.  This takes a single Message instance.
-
-    - Message.getmaintype() and Message.getsubtype() will now return
-      failobj when the Content-Type: header doesn't have enough
-      information.
-
-0.3 (20-Apr-2001)
-
-    - In the Image class, the _encoding argument has been changed to
-      _encoder.  Also ImageTypeError is removed; if Image.__init__()
-      can't guess the image's minor type, a TypeError is raised
-      instead.
-
-    - Message.getparam() and Message.getparams() have grown a new
-      optional argument `header'.
-
-    - MsgReader class has grown a new method readlines() for
-      compatibility with Python 2.1's xreadline module.
-
-    - The ReprMixin module and class have been renamed to
-      StringableMixin
-
-    - New exception MultipartConversionError can be raised by
-      Message.add_payload()
-
-    - Bug fixes
-
-    - mimelib has been moved to SourceForge.  See
-      http://mimelib.sourceforge.net
-
-0.2 (14-Feb-2001)
-
-    - Generator constructor has a new optional argument `mangle_from_'
-      which is a flag.  If true, the generated flat text has From_
-      lines mangled in the body of messages by prepending a `>' in
-      front of the line.  This assures that such lines are not
-      mistaken for Unix mailbox separators.
-
-    - Added a new class ReprMixin for adding convenience methods
-      get_text() and __str__() to Message subclasses.
-
-    - RFC 1341 (MIME) calls the blob between the closing boundary and
-      the end of the message, the `epilogue'.  Change `postamble' to
-      `epilogue' in Message and Generator classes.
-
-    - Much better conformance to RFC 1341 in the Generator.
-
-    - Added __all__ support for "from mimelib import *"
-
-    - Added LICENSE file, currently BSD-ish.  The copyright will
-      eventually be transferred to the Python Software Foundation when
-      it is activated.
-
-    - Bug fixes.
-
-0.1 (24-Jan-2001)
-
-    Initial beta release.
-
-
-
-Local Variables:
-mode: indented-text
-indent-tabs-mode: nil
-End:

Deleted: /sandbox/trunk/emailpkg/3_0/README
==============================================================================
--- /sandbox/trunk/emailpkg/3_0/README	Mon Mar  6 02:05:58 2006
+++ (empty file)
@@ -1,95 +0,0 @@
-email -- a mail and MIME handling package
-Copyright (C) 2001-2004 Python Software Foundation
-
-
-Introduction
-
-    The email package is a library for managing email messages, including MIME
-    and other RFC 2822-based message documents.  It is intended to replace
-    most of the functionality in several older standard modules such as
-    rfc822, mimetools, multifile, mimify, and MIMEWriter, and other
-    non-standard packages such as mimecntl.  It is compliant with most of the
-    email related RFCs such as 2045-2047 (the MIME RFCs) and 2231.
-
-    This version is identical to the package available in Python 2.4.  It is
-    being made available as a standalone distutils package for use in older
-    Python releases.  A minimum of Python 2.3 is required.  Because the email
-    package is part of Python, it is covered by the PSF license for Python, as
-    described in the LICENSE.txt file.
-
-
-Testing
-
-    To test the email package, run the standard unit test suite from the
-    directory that you unpacked the source in (i.e. the directory containing
-    the setup.py file and this README file):
-
-    % python testall.py
-
-    You should see a couple of lines of dots followed by the number of tests
-    ran and the time the tests took.  The test should end with an "OK".  If
-    so, you're good to go.  Note that the exact number of tests depends on
-    such things as whether you have the Japanese codecs installed or not.
-
-
-Documentation and Examples
-
-    The documentation can be found in the docs directory:
-
-    docs/index.html
-
-    If you're looking for examples, you might want to check out some
-    of the tests.  There are a few examples in the documentation as
-    well.
-
-
-Installing
-
-    To install simply execute the following at your shell prompt:
-
-    % python setup.py install
-
-    If you're using Python 2.4, you've already got the latest version.
-
-
-Acknowledgements
-
-    A big thanks goes to Ben Gertzfield who implemented the bulk of the
-    multibyte support in version 1.1, as well as the RFC compliant base64 and
-    quoted-printable modules.
-
-    Many thanks to these other fine folks for providing code contributions or
-    examples, suggestions, bug reports, feedback, encouragement, etc.
-
-    Anthony Baxter
-    Martin Bless
-    Oleg Broytmann
-    Matthew Dixon Cowles
-    Jeff Dairiki
-    Quinn Dunkan
-    David Given
-    Phil Hunt
-    Sheila King
-    Martin Koch
-    Jason Mastaler
-    Andrew McNamara
-    Skip Montanaro
-    Guido van Rossum
-    Thomas Wouters
-
-    Apologies to anybody I've left out (let me know!).
-
-
-Contact Information
-
-    The email-sig is the mailing list and community of users and developers of
-    the package and related Python email technologies.  For more information:
-
-    http://www.python.org/sigs/email-sig
-
-
-
-Local Variables:
-mode: indented-text
-indent-tabs-mode: nil
-End:

Copied: sandbox/trunk/emailpkg/3_0/README.txt (from r42858, sandbox/trunk/emailpkg/3_0/README)
==============================================================================
--- sandbox/trunk/emailpkg/3_0/README	(original)
+++ sandbox/trunk/emailpkg/3_0/README.txt	Mon Mar  6 02:05:58 2006
@@ -1,5 +1,5 @@
 email -- a mail and MIME handling package
-Copyright (C) 2001-2004 Python Software Foundation
+Copyright (C) 2001-2006 Python Software Foundation
 
 
 Introduction

Added: sandbox/trunk/emailpkg/3_0/docs/about.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/about.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="module-email.html" />
+<link rel="parent" href="mimelib.html" />
+<meta name='aesop' content='information' />
+<title>About this document ...</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.13 Examples"
+  href="node20.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="email Package Reference"
+  href="mimelib.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node20.html">2.13 Examples</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="mimelib.html">email Package Reference</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION000300000000000000000">
+About this document ...</A>
+</H1>
+ <strong>email Package Reference</strong>,
+March 5, 2006, Release 3.0
+<p> This document was generated using the <a
+    href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+    <strong>LaTeX</strong>2<tt>HTML</tt></a> translator.
+</p>
+
+<p> <a
+    href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+    <strong>LaTeX</strong>2<tt>HTML</tt></a> is Copyright &copy;
+  1993, 1994, 1995, 1996, 1997, <a
+    href="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos
+    Drakos</a>, Computer Based Learning Unit, University of
+  Leeds, and Copyright &copy; 1997, 1998, <a
+    href="http://www.maths.mq.edu.au/~ross/">Ross
+    Moore</a>, Mathematics Department, Macquarie University,
+  Sydney.
+</p>
+
+<p> The application of <a
+    href="http://saftsack.fs.uni-bayreuth.de/~latex2ht/">
+    <strong>LaTeX</strong>2<tt>HTML</tt></a> to the Python
+  documentation has been heavily tailored by Fred L. Drake,
+  Jr.  Original navigation icons were contributed by Christopher
+  Petrilli.
+</p>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.13 Examples"
+  href="node20.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="email Package Reference"
+  href="mimelib.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node20.html">2.13 Examples</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="mimelib.html">email Package Reference</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/blank.png
==============================================================================
Binary file. No diff available.

Added: sandbox/trunk/emailpkg/3_0/docs/contents.png
==============================================================================
Binary file. No diff available.

Added: sandbox/trunk/emailpkg/3_0/docs/email-dir.txt
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/email-dir.txt	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,124 @@
+#!/usr/bin/env python
+
+"""Send the contents of a directory as a MIME message.
+
+Usage: dirmail [options] from to [to ...]*
+
+Options:
+    -h / --help
+        Print this message and exit.
+
+    -d directory
+    --directory=directory
+        Mail the contents of the specified directory, otherwise use the
+        current directory.  Only the regular files in the directory are sent,
+        and we don't recurse to subdirectories.
+
+`from' is the email address of the sender of the message.
+
+`to' is the email address of the recipient of the message, and multiple
+recipients may be given.
+
+The email is sent by forwarding to your local SMTP server, which then does the
+normal delivery process.  Your local machine must be running an SMTP server.
+"""
+
+import sys
+import os
+import getopt
+import smtplib
+# For guessing MIME type based on file name extension
+import mimetypes
+
+from email import Encoders
+from email.Message import Message
+from email.MIMEAudio import MIMEAudio
+from email.MIMEBase import MIMEBase
+from email.MIMEMultipart import MIMEMultipart
+from email.MIMEImage import MIMEImage
+from email.MIMEText import MIMEText
+
+COMMASPACE = ', '
+
+
+def usage(code, msg=''):
+    print >> sys.stderr, __doc__
+    if msg:
+        print >> sys.stderr, msg
+    sys.exit(code)
+
+
+def main():
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], 'hd:', ['help', 'directory='])
+    except getopt.error, msg:
+        usage(1, msg)
+
+    dir = os.curdir
+    for opt, arg in opts:
+        if opt in ('-h', '--help'):
+            usage(0)
+        elif opt in ('-d', '--directory'):
+            dir = arg
+
+    if len(args) < 2:
+        usage(1)
+
+    sender = args[0]
+    recips = args[1:]
+
+    # Create the enclosing (outer) message
+    outer = MIMEMultipart()
+    outer['Subject'] = 'Contents of directory %s' % os.path.abspath(dir)
+    outer['To'] = COMMASPACE.join(recips)
+    outer['From'] = sender
+    outer.preamble = 'You will not see this in a MIME-aware mail reader.\n'
+    # To guarantee the message ends with a newline
+    outer.epilogue = ''
+
+    for filename in os.listdir(dir):
+        path = os.path.join(dir, filename)
+        if not os.path.isfile(path):
+            continue
+        # Guess the content type based on the file's extension.  Encoding
+        # will be ignored, although we should check for simple things like
+        # gzip'd or compressed files.
+        ctype, encoding = mimetypes.guess_type(path)
+        if ctype is None or encoding is not None:
+            # No guess could be made, or the file is encoded (compressed), so
+            # use a generic bag-of-bits type.
+            ctype = 'application/octet-stream'
+        maintype, subtype = ctype.split('/', 1)
+        if maintype == 'text':
+            fp = open(path)
+            # Note: we should handle calculating the charset
+            msg = MIMEText(fp.read(), _subtype=subtype)
+            fp.close()
+        elif maintype == 'image':
+            fp = open(path, 'rb')
+            msg = MIMEImage(fp.read(), _subtype=subtype)
+            fp.close()
+        elif maintype == 'audio':
+            fp = open(path, 'rb')
+            msg = MIMEAudio(fp.read(), _subtype=subtype)
+            fp.close()
+        else:
+            fp = open(path, 'rb')
+            msg = MIMEBase(maintype, subtype)
+            msg.set_payload(fp.read())
+            fp.close()
+            # Encode the payload using Base64
+            Encoders.encode_base64(msg)
+        # Set the filename parameter
+        msg.add_header('Content-Disposition', 'attachment', filename=filename)
+        outer.attach(msg)
+
+    # Now send the message
+    s = smtplib.SMTP()
+    s.connect()
+    s.sendmail(sender, recips, outer.as_string())
+    s.close()
+
+
+if __name__ == '__main__':
+    main()

Added: sandbox/trunk/emailpkg/3_0/docs/email-mime.txt
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/email-mime.txt	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,34 @@
+# Import smtplib for the actual sending function
+import smtplib
+
+# Here are the email package modules we'll need
+from email.MIMEImage import MIMEImage
+from email.MIMEMultipart import MIMEMultipart
+
+COMMASPACE = ', '
+
+# Create the container (outer) email message.
+msg = MIMEMultipart()
+msg['Subject'] = 'Our family reunion'
+# me == the sender's email address
+# family = the list of all recipients' email addresses
+msg['From'] = me
+msg['To'] = COMMASPACE.join(family)
+msg.preamble = 'Our family reunion'
+# Guarantees the message ends in a newline
+msg.epilogue = ''
+
+# Assume we know that the image files are all in PNG format
+for file in pngfiles:
+    # Open the files in binary mode.  Let the MIMEImage class automatically
+    # guess the specific image type.
+    fp = open(file, 'rb')
+    img = MIMEImage(fp.read())
+    fp.close()
+    msg.attach(img)
+
+# Send the email via our own SMTP server.
+s = smtplib.SMTP()
+s.connect()
+s.sendmail(me, family, msg.as_string())
+s.close()

Added: sandbox/trunk/emailpkg/3_0/docs/email-simple.txt
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/email-simple.txt	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,25 @@
+# Import smtplib for the actual sending function
+import smtplib
+
+# Import the email modules we'll need
+from email.MIMEText import MIMEText
+
+# Open a plain text file for reading.  For this example, assume that
+# the text file contains only ASCII characters.
+fp = open(textfile, 'rb')
+# Create a text/plain message
+msg = MIMEText(fp.read())
+fp.close()
+
+# me == the sender's email address
+# you == the recipient's email address
+msg['Subject'] = 'The contents of %s' % textfile
+msg['From'] = me
+msg['To'] = you
+
+# Send the message via our own SMTP server, but don't include the
+# envelope header.
+s = smtplib.SMTP()
+s.connect()
+s.sendmail(me, [you], msg.as_string())
+s.close()

Added: sandbox/trunk/emailpkg/3_0/docs/email-unpack.txt
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/email-unpack.txt	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+
+"""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 errno
+import mimetypes
+import email
+
+
+def usage(code, msg=''):
+    print >> sys.stderr, __doc__
+    if msg:
+        print >> sys.stderr, msg
+    sys.exit(code)
+
+
+def main():
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], 'hd:', ['help', 'directory='])
+    except getopt.error, msg:
+        usage(1, msg)
+
+    dir = os.curdir
+    for opt, arg in opts:
+        if opt in ('-h', '--help'):
+            usage(0)
+        elif opt in ('-d', '--directory'):
+            dir = arg
+
+    try:
+        msgfile = args[0]
+    except IndexError:
+        usage(1)
+
+    try:
+        os.mkdir(dir)
+    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(dir, filename), 'wb')
+        fp.write(part.get_payload(decode=1))
+        fp.close()
+
+
+if __name__ == '__main__':
+    main()

Added: sandbox/trunk/emailpkg/3_0/docs/index.dat
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/index.dat	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,133 @@
+<a href="node2.html"><tt class="module">email</tt> (standard module)###DEF0000003005
+<a href="node3.html"><tt class="module">email.Message</tt> (standard module)###DEF0000003021
+<a href="node3.html#l2h-3"><tt class="class">Message</tt> (class in email.Message)###0000003022
+<a href="node3.html#l2h-4"><tt class="method">as_string()</tt> (Message method)###0000003023
+<a href="node3.html#l2h-5"><tt class="method">__str__()</tt> (Message method)###0000003024
+<a href="node3.html#l2h-6"><tt class="method">is_multipart()</tt> (Message method)###0000003025
+<a href="node3.html#l2h-7"><tt class="method">set_unixfrom()</tt> (Message method)###0000003026
+<a href="node3.html#l2h-8"><tt class="method">get_unixfrom()</tt> (Message method)###0000003027
+<a href="node3.html#l2h-9"><tt class="method">attach()</tt> (Message method)###0000003028
+<a href="node3.html#l2h-10"><tt class="method">get_payload()</tt> (Message method)###0000003029
+<a href="node3.html#l2h-11"><tt class="method">set_payload()</tt> (Message method)###0000003030
+<a href="node3.html#l2h-12"><tt class="method">set_charset()</tt> (Message method)###0000003031
+<a href="node3.html#l2h-13"><tt class="method">get_charset()</tt> (Message method)###0000003032
+<a href="node3.html#l2h-14"><tt class="method">__len__()</tt> (Message method)###0000003033
+<a href="node3.html#l2h-15"><tt class="method">__contains__()</tt> (Message method)###0000003034
+<a href="node3.html#l2h-16"><tt class="method">__getitem__()</tt> (Message method)###0000003035
+<a href="node3.html#l2h-17"><tt class="method">__setitem__()</tt> (Message method)###0000003036
+<a href="node3.html#l2h-18"><tt class="method">__delitem__()</tt> (Message method)###0000003037
+<a href="node3.html#l2h-19"><tt class="method">has_key()</tt> (Message method)###0000003038
+<a href="node3.html#l2h-20"><tt class="method">keys()</tt> (Message method)###0000003039
+<a href="node3.html#l2h-21"><tt class="method">values()</tt> (Message method)###0000003040
+<a href="node3.html#l2h-22"><tt class="method">items()</tt> (Message method)###0000003041
+<a href="node3.html#l2h-23"><tt class="method">get()</tt> (Message method)###0000003042
+<a href="node3.html#l2h-24"><tt class="method">get_all()</tt> (Message method)###0000003043
+<a href="node3.html#l2h-25"><tt class="method">add_header()</tt> (Message method)###0000003044
+<a href="node3.html#l2h-26"><tt class="method">replace_header()</tt> (Message method)###0000003045
+<a href="node3.html#l2h-27"><tt class="method">get_content_type()</tt> (Message method)###0000003046
+<a href="node3.html#l2h-28"><tt class="method">get_content_maintype()</tt> (Message method)###0000003047
+<a href="node3.html#l2h-29"><tt class="method">get_content_subtype()</tt> (Message method)###0000003048
+<a href="node3.html#l2h-30"><tt class="method">get_default_type()</tt> (Message method)###0000003049
+<a href="node3.html#l2h-31"><tt class="method">set_default_type()</tt> (Message method)###0000003050
+<a href="node3.html#l2h-32"><tt class="method">get_params()</tt> (Message method)###0000003051
+<a href="node3.html#l2h-33"><tt class="method">get_param()</tt> (Message method)###0000003052
+<a href="node3.html#l2h-34"><tt class="method">set_param()</tt> (Message method)###0000003053
+<a href="node3.html#l2h-35"><tt class="method">del_param()</tt> (Message method)###0000003054
+<a href="node3.html#l2h-36"><tt class="method">set_type()</tt> (Message method)###0000003055
+<a href="node3.html#l2h-37"><tt class="method">get_filename()</tt> (Message method)###0000003056
+<a href="node3.html#l2h-38"><tt class="method">get_boundary()</tt> (Message method)###0000003057
+<a href="node3.html#l2h-39"><tt class="method">set_boundary()</tt> (Message method)###0000003058
+<a href="node3.html#l2h-40"><tt class="method">get_content_charset()</tt> (Message method)###0000003059
+<a href="node3.html#l2h-41"><tt class="method">get_charsets()</tt> (Message method)###0000003060
+<a href="node3.html#l2h-42"><tt class="method">walk()</tt> (Message method)###0000003061
+<a href="node3.html#l2h-43"><tt>preamble</tt> (in module email.Message)###0000003062
+<a href="node3.html#l2h-44"><tt>epilogue</tt> (in module email.Message)###0000003063
+<a href="node3.html#l2h-45"><tt>defects</tt> (in module email.Message)###0000003064
+<a href="node4.html#l2h-46"><tt class="method">get_type()</tt> (Message method)###0000003084
+<a href="node4.html#l2h-47"><tt class="method">get_main_type()</tt> (Message method)###0000003085
+<a href="node4.html#l2h-48"><tt class="method">get_subtype()</tt> (Message method)###0000003086
+<a href="node5.html"><tt class="module">email.Parser</tt> (standard module)###DEF0000003088
+<a href="node6.html#l2h-50"><tt class="class">FeedParser</tt> (class in email.Parser)###0000003093
+<a href="node6.html#l2h-51"><tt class="method">feed()</tt> (FeedParser method)###0000003094
+<a href="node6.html#l2h-52"><tt class="method">close()</tt> (FeedParser method)###0000003095
+<a href="node7.html#l2h-53"><tt class="class">Parser</tt> (class in email.Parser)###0000003097
+<a href="node7.html#l2h-54"><tt class="method">parse()</tt> (Parser method)###0000003098
+<a href="node7.html#l2h-55"><tt class="method">parsestr()</tt> (Parser method)###0000003099
+<a href="node7.html#l2h-56"><tt class="function">message_from_string()</tt> (in module email.Parser)###0000003100
+<a href="node7.html#l2h-57"><tt class="function">message_from_file()</tt> (in module email.Parser)###0000003101
+<a href="node9.html"><tt class="module">email.Generator</tt> (standard module)###DEF0000003106
+<a href="node9.html#l2h-59"><tt class="class">Generator</tt> (class in email.Generator)###0000003107
+<a href="node9.html#l2h-60"><tt class="method">flatten()</tt> (Generator method)###0000003108
+<a href="node9.html#l2h-61"><tt class="method">clone()</tt> (Generator method)###0000003109
+<a href="node9.html#l2h-62"><tt class="method">write()</tt> (Generator method)###0000003110
+<a href="node9.html#l2h-63"><tt class="class">DecodedGenerator</tt> (class in email.Generator)###0000003111
+<a href="node10.html#l2h-64"><tt class="method">__call__()</tt> (Generator method)###0000003117
+<a href="node11.html#l2h-65"><tt class="class">MIMEBase</tt> (class in email.Generator)###0000003119
+<a href="node11.html#l2h-66"><tt class="class">MIMENonMultipart</tt> (class in email.Generator)###0000003120
+<a href="node11.html#l2h-67"><tt class="class">MIMEMultipart</tt> (class in email.Generator)###0000003121
+<a href="node11.html#l2h-68"><tt class="class">MIMEAudio</tt> (class in email.Generator)###0000003122
+<a href="node11.html#l2h-69"><tt class="class">MIMEImage</tt> (class in email.Generator)###0000003123
+<a href="node11.html#l2h-70"><tt class="class">MIMEMessage</tt> (class in email.Generator)###0000003124
+<a href="node11.html#l2h-71"><tt class="class">MIMEText</tt> (class in email.Generator)###0000003125
+<a href="node12.html"><tt class="module">email.Header</tt> (standard module)###DEF0000003127
+<a href="node12.html#l2h-73"><tt class="class">Header</tt> (class in email.Header)###0000003128
+<a href="node12.html#l2h-74"><tt class="method">append()</tt> (Header method)###0000003129
+<a href="node12.html#l2h-75"><tt class="method">encode()</tt> (Header method)###0000003130
+<a href="node12.html#l2h-76"><tt class="method">__str__()</tt> (Header method)###0000003131
+<a href="node12.html#l2h-77"><tt class="method">__unicode__()</tt> (Header method)###0000003132
+<a href="node12.html#l2h-78"><tt class="method">__eq__()</tt> (Header method)###0000003133
+<a href="node12.html#l2h-79"><tt class="method">__ne__()</tt> (Header method)###0000003134
+<a href="node12.html#l2h-80"><tt class="function">decode_header()</tt> (in module email.Header)###0000003135
+<a href="node12.html#l2h-81"><tt class="function">make_header()</tt> (in module email.Header)###0000003136
+<a href="node13.html"><tt class="module">email.Charset</tt> (standard module)###DEF0000003166
+<a href="node13.html#l2h-83"><tt class="class">Charset</tt> (class in email.Charset)###0000003167
+<a href="node13.html#l2h-84"><tt>input_charset</tt> (in module email.Charset)###0000003168
+<a href="node13.html#l2h-85"><tt>header_encoding</tt> (in module email.Charset)###0000003169
+<a href="node13.html#l2h-86"><tt>body_encoding</tt> (in module email.Charset)###0000003170
+<a href="node13.html#l2h-87"><tt>output_charset</tt> (in module email.Charset)###0000003171
+<a href="node13.html#l2h-88"><tt>input_codec</tt> (in module email.Charset)###0000003172
+<a href="node13.html#l2h-89"><tt>output_codec</tt> (in module email.Charset)###0000003173
+<a href="node13.html#l2h-90"><tt class="method">get_body_encoding()</tt> (Charset method)###0000003174
+<a href="node13.html#l2h-91"><tt class="method">convert()</tt> (Charset method)###0000003175
+<a href="node13.html#l2h-92"><tt class="method">to_splittable()</tt> (Charset method)###0000003176
+<a href="node13.html#l2h-93"><tt class="method">from_splittable()</tt> (Charset method)###0000003177
+<a href="node13.html#l2h-94"><tt class="method">get_output_charset()</tt> (Charset method)###0000003178
+<a href="node13.html#l2h-95"><tt class="method">encoded_header_len()</tt> (Charset method)###0000003179
+<a href="node13.html#l2h-96"><tt class="method">header_encode()</tt> (Charset method)###0000003180
+<a href="node13.html#l2h-97"><tt class="method">body_encode()</tt> (Charset method)###0000003181
+<a href="node13.html#l2h-98"><tt class="method">__str__()</tt> (Charset method)###0000003182
+<a href="node13.html#l2h-99"><tt class="method">__eq__()</tt> (Charset method)###0000003183
+<a href="node13.html#l2h-100"><tt class="method">__ne__()</tt> (Header method)###0000003184
+<a href="node13.html#l2h-101"><tt class="function">add_charset()</tt> (in module email.Charset)###0000003185
+<a href="node13.html#l2h-102"><tt class="function">add_alias()</tt> (in module email.Charset)###0000003186
+<a href="node13.html#l2h-103"><tt class="function">add_codec()</tt> (in module email.Charset)###0000003187
+<a href="node14.html"><tt class="module">email.Encoders</tt> (standard module)###DEF0000003189
+<a href="node14.html#l2h-105"><tt class="function">encode_quopri()</tt> (in module email.Encoders)###0000003190
+<a href="node14.html#l2h-106"><tt class="function">encode_base64()</tt> (in module email.Encoders)###0000003193
+<a href="node14.html#l2h-107"><tt class="function">encode_7or8bit()</tt> (in module email.Encoders)###0000003194
+<a href="node14.html#l2h-108"><tt class="function">encode_noop()</tt> (in module email.Encoders)###0000003195
+<a href="node15.html"><tt class="module">email.Errors</tt> (standard module)###DEF0000003198
+<a href="node15.html#l2h-110"><tt class="exception">MessageError</tt> (exception in email.Errors)###0000003199
+<a href="node15.html#l2h-111"><tt class="exception">MessageParseError</tt> (exception in email.Errors)###0000003200
+<a href="node15.html#l2h-112"><tt class="exception">HeaderParseError</tt> (exception in email.Errors)###0000003201
+<a href="node15.html#l2h-113"><tt class="exception">BoundaryError</tt> (exception in email.Errors)###0000003202
+<a href="node15.html#l2h-114"><tt class="exception">MultipartConversionError</tt> (exception in email.Errors)###0000003203
+<a href="node16.html"><tt class="module">email.Utils</tt> (standard module)###DEF0000003213
+<a href="node16.html#l2h-116"><tt class="function">quote()</tt> (in module email.Utils)###0000003214
+<a href="node16.html#l2h-117"><tt class="function">unquote()</tt> (in module email.Utils)###0000003215
+<a href="node16.html#l2h-118"><tt class="function">parseaddr()</tt> (in module email.Utils)###0000003216
+<a href="node16.html#l2h-119"><tt class="function">formataddr()</tt> (in module email.Utils)###0000003217
+<a href="node16.html#l2h-120"><tt class="function">getaddresses()</tt> (in module email.Utils)###0000003218
+<a href="node16.html#l2h-121"><tt class="function">parsedate()</tt> (in module email.Utils)###0000003219
+<a href="node16.html#l2h-122"><tt class="function">parsedate_tz()</tt> (in module email.Utils)###0000003220
+<a href="node16.html#l2h-123"><tt class="function">mktime_tz()</tt> (in module email.Utils)###0000003225
+<a href="node16.html#l2h-124"><tt class="function">formatdate()</tt> (in module email.Utils)###0000003226
+<a href="node16.html#l2h-125"><tt class="function">make_msgid()</tt> (in module email.Utils)###0000003227
+<a href="node16.html#l2h-126"><tt class="function">decode_rfc2231()</tt> (in module email.Utils)###0000003228
+<a href="node16.html#l2h-127"><tt class="function">encode_rfc2231()</tt> (in module email.Utils)###0000003229
+<a href="node16.html#l2h-128"><tt class="function">collapse_rfc2231_value()</tt> (in module email.Utils)###0000003230
+<a href="node16.html#l2h-129"><tt class="function">decode_params()</tt> (in module email.Utils)###0000003231
+<a href="node17.html"><tt class="module">email.Iterators</tt> (standard module)###DEF0000003252
+<a href="node17.html#l2h-131"><tt class="function">body_line_iterator()</tt> (in module email.Iterators)###0000003253
+<a href="node17.html#l2h-132"><tt class="function">typed_subpart_iterator()</tt> (in module email.Iterators)###0000003254
+<a href="node17.html#l2h-133"><tt class="function">_structure()</tt> (in module email.Iterators)###0000003255

Added: sandbox/trunk/emailpkg/3_0/docs/index.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/index.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node1.html" />
+<meta name='aesop' content='information' />
+<title>email Package Reference</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="1 Introduction"
+  href="node1.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node1.html">1 Introduction</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<P>
+
+<div class="titlepage">
+<div class='center'>
+<h1>email Package Reference</h1>
+<p><b><font size="+2">Barry Warsaw</font></b></p>
+<p><span class="email">barry at python.org</span></p>
+<p><strong>Release 3.0</strong><br />
+<strong>March 5, 2006</strong></p>
+<p></p>
+</div>
+</div>
+
+<P>
+
+<H3>Abstract:</H3>
+<DIV CLASS="ABSTRACT">
+  The <tt class="module">email</tt> package provides classes and utilities to create,
+  parse, generate, and modify email messages, conforming to all the
+  relevant email and MIME related RFCs.
+</DIV>
+<P>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="node1.html">1 Introduction</a>
+<LI><A href="module-email.html">2 <tt class="module">email</tt> --
+	 An email and MIME handling package</a>
+<UL>
+<LI><A href="module-email.Message.html">2.1 Representing an email message</a>
+<UL>
+<LI><A href="node4.html">2.1.1 Deprecated methods</a>
+</ul>
+<LI><A href="module-email.Parser.html">2.2 Parsing email messages</a>
+<UL>
+<LI><A href="node6.html">2.2.1 FeedParser API</a>
+<LI><A href="node7.html">2.2.2 Parser class API</a>
+<LI><A href="node8.html">2.2.3 Additional notes</a>
+</ul>
+<LI><A href="module-email.Generator.html">2.3 Generating MIME documents</a>
+<UL>
+<LI><A href="node10.html">2.3.1 Deprecated methods</a>
+</ul>
+<LI><A href="node11.html">2.4 Creating email and MIME objects from scratch</a>
+<LI><A href="module-email.Header.html">2.5 Internationalized headers</a>
+<LI><A href="module-email.Charset.html">2.6 Representing character sets</a>
+<LI><A href="module-email.Encoders.html">2.7 Encoders</a>
+<LI><A href="module-email.Errors.html">2.8 Exception and Defect classes</a>
+<LI><A href="module-email.Utils.html">2.9 Miscellaneous utilities</a>
+<LI><A href="module-email.Iterators.html">2.10 Iterators</a>
+<LI><A href="node18.html">2.11 Package History</a>
+<LI><A href="node19.html">2.12 Differences from <tt class="module">mimelib</tt></a>
+<LI><A href="node20.html">2.13 Examples</a>
+</ul>
+<LI><A href="about.html">About this document ...</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="1 Introduction"
+  href="node1.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node1.html">1 Introduction</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/index.png
==============================================================================
Binary file. No diff available.

Added: sandbox/trunk/emailpkg/3_0/docs/internals.pl
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/internals.pl	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,50 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate internals original text with physical files.
+
+
+$key = q/module-email.Utils/;
+$ref_files{$key} = "$dir".q|node16.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Parser/;
+$ref_files{$key} = "$dir".q|node5.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Errors/;
+$ref_files{$key} = "$dir".q|node15.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Generator/;
+$ref_files{$key} = "$dir".q|node9.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Header/;
+$ref_files{$key} = "$dir".q|node12.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Encoders/;
+$ref_files{$key} = "$dir".q|node14.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Iterators/;
+$ref_files{$key} = "$dir".q|node17.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email/;
+$ref_files{$key} = "$dir".q|node2.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/about/;
+$ref_files{$key} = "$dir".q|node21.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Charset/;
+$ref_files{$key} = "$dir".q|node13.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Message/;
+$ref_files{$key} = "$dir".q|node3.html|; 
+$noresave{$key} = "$nosave";
+
+1;
+

Added: sandbox/trunk/emailpkg/3_0/docs/intlabels.pl
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/intlabels.pl	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,136 @@
+%internal_labels = ();
+1;             # hack in case there are no entries
+
+$internal_labels{"l2h-1"} = "/node2.html";
+$internal_labels{"l2h-2"} = "/node3.html";
+$internal_labels{"l2h-3"} = "/node3.html";
+$internal_labels{"l2h-4"} = "/node3.html";
+$internal_labels{"l2h-5"} = "/node3.html";
+$internal_labels{"l2h-6"} = "/node3.html";
+$internal_labels{"l2h-7"} = "/node3.html";
+$internal_labels{"l2h-8"} = "/node3.html";
+$internal_labels{"l2h-9"} = "/node3.html";
+$internal_labels{"l2h-10"} = "/node3.html";
+$internal_labels{"l2h-11"} = "/node3.html";
+$internal_labels{"l2h-12"} = "/node3.html";
+$internal_labels{"l2h-13"} = "/node3.html";
+$internal_labels{"l2h-14"} = "/node3.html";
+$internal_labels{"l2h-15"} = "/node3.html";
+$internal_labels{"l2h-16"} = "/node3.html";
+$internal_labels{"l2h-17"} = "/node3.html";
+$internal_labels{"l2h-18"} = "/node3.html";
+$internal_labels{"l2h-19"} = "/node3.html";
+$internal_labels{"l2h-20"} = "/node3.html";
+$internal_labels{"l2h-21"} = "/node3.html";
+$internal_labels{"l2h-22"} = "/node3.html";
+$internal_labels{"l2h-23"} = "/node3.html";
+$internal_labels{"l2h-24"} = "/node3.html";
+$internal_labels{"l2h-25"} = "/node3.html";
+$internal_labels{"l2h-26"} = "/node3.html";
+$internal_labels{"l2h-27"} = "/node3.html";
+$internal_labels{"l2h-28"} = "/node3.html";
+$internal_labels{"l2h-29"} = "/node3.html";
+$internal_labels{"l2h-30"} = "/node3.html";
+$internal_labels{"l2h-31"} = "/node3.html";
+$internal_labels{"l2h-32"} = "/node3.html";
+$internal_labels{"l2h-33"} = "/node3.html";
+$internal_labels{"l2h-34"} = "/node3.html";
+$internal_labels{"l2h-35"} = "/node3.html";
+$internal_labels{"l2h-36"} = "/node3.html";
+$internal_labels{"l2h-37"} = "/node3.html";
+$internal_labels{"l2h-38"} = "/node3.html";
+$internal_labels{"l2h-39"} = "/node3.html";
+$internal_labels{"l2h-40"} = "/node3.html";
+$internal_labels{"l2h-41"} = "/node3.html";
+$internal_labels{"l2h-42"} = "/node3.html";
+$internal_labels{"l2h-43"} = "/node3.html";
+$internal_labels{"l2h-44"} = "/node3.html";
+$internal_labels{"l2h-45"} = "/node3.html";
+$internal_labels{"l2h-46"} = "/node4.html";
+$internal_labels{"l2h-47"} = "/node4.html";
+$internal_labels{"l2h-48"} = "/node4.html";
+$internal_labels{"l2h-49"} = "/node5.html";
+$internal_labels{"l2h-50"} = "/node6.html";
+$internal_labels{"l2h-51"} = "/node6.html";
+$internal_labels{"l2h-52"} = "/node6.html";
+$internal_labels{"l2h-53"} = "/node7.html";
+$internal_labels{"l2h-54"} = "/node7.html";
+$internal_labels{"l2h-55"} = "/node7.html";
+$internal_labels{"l2h-56"} = "/node7.html";
+$internal_labels{"l2h-57"} = "/node7.html";
+$internal_labels{"l2h-58"} = "/node9.html";
+$internal_labels{"l2h-59"} = "/node9.html";
+$internal_labels{"l2h-60"} = "/node9.html";
+$internal_labels{"l2h-61"} = "/node9.html";
+$internal_labels{"l2h-62"} = "/node9.html";
+$internal_labels{"l2h-63"} = "/node9.html";
+$internal_labels{"l2h-64"} = "/node10.html";
+$internal_labels{"l2h-65"} = "/node11.html";
+$internal_labels{"l2h-66"} = "/node11.html";
+$internal_labels{"l2h-67"} = "/node11.html";
+$internal_labels{"l2h-68"} = "/node11.html";
+$internal_labels{"l2h-69"} = "/node11.html";
+$internal_labels{"l2h-70"} = "/node11.html";
+$internal_labels{"l2h-71"} = "/node11.html";
+$internal_labels{"l2h-72"} = "/node12.html";
+$internal_labels{"l2h-73"} = "/node12.html";
+$internal_labels{"l2h-74"} = "/node12.html";
+$internal_labels{"l2h-75"} = "/node12.html";
+$internal_labels{"l2h-76"} = "/node12.html";
+$internal_labels{"l2h-77"} = "/node12.html";
+$internal_labels{"l2h-78"} = "/node12.html";
+$internal_labels{"l2h-79"} = "/node12.html";
+$internal_labels{"l2h-80"} = "/node12.html";
+$internal_labels{"l2h-81"} = "/node12.html";
+$internal_labels{"l2h-82"} = "/node13.html";
+$internal_labels{"l2h-83"} = "/node13.html";
+$internal_labels{"l2h-84"} = "/node13.html";
+$internal_labels{"l2h-85"} = "/node13.html";
+$internal_labels{"l2h-86"} = "/node13.html";
+$internal_labels{"l2h-87"} = "/node13.html";
+$internal_labels{"l2h-88"} = "/node13.html";
+$internal_labels{"l2h-89"} = "/node13.html";
+$internal_labels{"l2h-90"} = "/node13.html";
+$internal_labels{"l2h-91"} = "/node13.html";
+$internal_labels{"l2h-92"} = "/node13.html";
+$internal_labels{"l2h-93"} = "/node13.html";
+$internal_labels{"l2h-94"} = "/node13.html";
+$internal_labels{"l2h-95"} = "/node13.html";
+$internal_labels{"l2h-96"} = "/node13.html";
+$internal_labels{"l2h-97"} = "/node13.html";
+$internal_labels{"l2h-98"} = "/node13.html";
+$internal_labels{"l2h-99"} = "/node13.html";
+$internal_labels{"l2h-100"} = "/node13.html";
+$internal_labels{"l2h-101"} = "/node13.html";
+$internal_labels{"l2h-102"} = "/node13.html";
+$internal_labels{"l2h-103"} = "/node13.html";
+$internal_labels{"l2h-104"} = "/node14.html";
+$internal_labels{"l2h-105"} = "/node14.html";
+$internal_labels{"l2h-106"} = "/node14.html";
+$internal_labels{"l2h-107"} = "/node14.html";
+$internal_labels{"l2h-108"} = "/node14.html";
+$internal_labels{"l2h-109"} = "/node15.html";
+$internal_labels{"l2h-110"} = "/node15.html";
+$internal_labels{"l2h-111"} = "/node15.html";
+$internal_labels{"l2h-112"} = "/node15.html";
+$internal_labels{"l2h-113"} = "/node15.html";
+$internal_labels{"l2h-114"} = "/node15.html";
+$internal_labels{"l2h-115"} = "/node16.html";
+$internal_labels{"l2h-116"} = "/node16.html";
+$internal_labels{"l2h-117"} = "/node16.html";
+$internal_labels{"l2h-118"} = "/node16.html";
+$internal_labels{"l2h-119"} = "/node16.html";
+$internal_labels{"l2h-120"} = "/node16.html";
+$internal_labels{"l2h-121"} = "/node16.html";
+$internal_labels{"l2h-122"} = "/node16.html";
+$internal_labels{"l2h-123"} = "/node16.html";
+$internal_labels{"l2h-124"} = "/node16.html";
+$internal_labels{"l2h-125"} = "/node16.html";
+$internal_labels{"l2h-126"} = "/node16.html";
+$internal_labels{"l2h-127"} = "/node16.html";
+$internal_labels{"l2h-128"} = "/node16.html";
+$internal_labels{"l2h-129"} = "/node16.html";
+$internal_labels{"l2h-130"} = "/node17.html";
+$internal_labels{"l2h-131"} = "/node17.html";
+$internal_labels{"l2h-132"} = "/node17.html";
+$internal_labels{"l2h-133"} = "/node17.html";

Added: sandbox/trunk/emailpkg/3_0/docs/labels.pl
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/labels.pl	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,97 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+$key = q/module-email.Utils/;
+$external_labels{$key} = "$URL/" . q|node16.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Parser/;
+$external_labels{$key} = "$URL/" . q|node5.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Errors/;
+$external_labels{$key} = "$URL/" . q|node15.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Generator/;
+$external_labels{$key} = "$URL/" . q|node9.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Header/;
+$external_labels{$key} = "$URL/" . q|node12.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Encoders/;
+$external_labels{$key} = "$URL/" . q|node14.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Iterators/;
+$external_labels{$key} = "$URL/" . q|node17.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email/;
+$external_labels{$key} = "$URL/" . q|node2.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/about/;
+$external_labels{$key} = "$URL/" . q|node21.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Charset/;
+$external_labels{$key} = "$URL/" . q|node13.html|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Message/;
+$external_labels{$key} = "$URL/" . q|node3.html|; 
+$noresave{$key} = "$nosave";
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+$key = q/module-email.Utils/;
+$external_latex_labels{$key} = q|2.9|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Parser/;
+$external_latex_labels{$key} = q|2.2|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Errors/;
+$external_latex_labels{$key} = q|2.8|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Generator/;
+$external_latex_labels{$key} = q|2.3|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Header/;
+$external_latex_labels{$key} = q|2.5|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Encoders/;
+$external_latex_labels{$key} = q|2.7|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Iterators/;
+$external_latex_labels{$key} = q|2.10|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email/;
+$external_latex_labels{$key} = q|2|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Charset/;
+$external_latex_labels{$key} = q|2.6|; 
+$noresave{$key} = "$nosave";
+
+$key = q/module-email.Message/;
+$external_latex_labels{$key} = q|2.1|; 
+$noresave{$key} = "$nosave";
+
+1;
+

Added: sandbox/trunk/emailpkg/3_0/docs/mimelib.css
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/mimelib.css	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,243 @@
+/*
+ * The first part of this is the standard CSS generated by LaTeX2HTML,
+ * with the "empty" declarations removed.
+ */
+
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.math                   { font-family: "Century Schoolbook", serif; }
+.math i                 { font-family: "Century Schoolbook", serif;
+                          font-weight: bold }
+.boldmath               { font-family: "Century Schoolbook", serif;
+                          font-weight: bold }
+
+/*
+ * Implement both fixed-size and relative sizes.
+ *
+ * I think these can be safely removed, as it doesn't appear that
+ * LaTeX2HTML ever generates these, even though these are carried
+ * over from the LaTeX2HTML stylesheet.
+ */
+small.xtiny             { font-size : xx-small; }
+small.tiny              { font-size : x-small; }
+small.scriptsize        { font-size : smaller; }
+small.footnotesize      { font-size : small; }
+big.xlarge              { font-size : large; }
+big.xxlarge             { font-size : x-large; }
+big.huge                { font-size : larger; }
+big.xhuge               { font-size : xx-large; }
+
+/*
+ * Document-specific styles come next;
+ * these are added for the Python documentation.
+ *
+ * Note that the size specifications for the H* elements are because
+ * Netscape on Solaris otherwise doesn't get it right; they all end up
+ * the normal text size.
+ */
+
+body                    { color: #000000;
+                          background-color: #ffffff; }
+
+a:link:active           { color: #ff0000; }
+a:link:hover            { background-color: #bbeeff; }
+a:visited:hover         { background-color: #bbeeff; }
+a:visited               { color: #551a8b; }
+a:link                  { color: #0000bb; }
+
+h1, h2, h3, h4, h5, h6  { font-family: avantgarde, sans-serif;
+                          font-weight: bold; }
+h1                      { font-size: 180%; }
+h2                      { font-size: 150%; }
+h3, h4                  { font-size: 120%; }
+
+/* These are section titles used in navigation links, so make sure we
+ * match the section header font here, even it not the weight.
+ */
+.sectref                { font-family: avantgarde, sans-serif; }
+/* And the label before the titles in navigation: */
+.navlabel               { font-size: 85%; }
+
+
+/* LaTeX2HTML insists on inserting <br> elements into headers which
+ * are marked with \label.  This little bit of CSS magic ensures that
+ * these elements don't cause spurious whitespace to be added.
+ */
+h1>br, h2>br, h3>br,
+h4>br, h5>br, h6>br     { display: none; }
+
+code, tt                { font-family: "lucida typewriter", lucidatypewriter,
+                                       monospace; }
+var                     { font-family: times, serif;
+                          font-style: italic;
+                          font-weight: normal; }
+
+.Unix                   { font-variant: small-caps; }
+
+.typelabel              { font-family: lucida, sans-serif; }
+
+.navigation td          { background-color: #99ccff;
+                          font-weight: bold;
+                          font-family: avantgarde, sans-serif;
+                          font-size: 110%; }
+
+div.warning             { background-color: #fffaf0;
+                          border: thin solid black;
+                          padding: 1em;
+                          margin-left: 2em;
+                          margin-right: 2em; }
+
+div.warning .label      { font-family: sans-serif;
+                          font-size: 110%;
+                          margin-right: 0.5em; }
+
+div.note                { background-color: #fffaf0;
+                          border: thin solid black;
+                          padding: 1em;
+                          margin-left: 2em;
+                          margin-right: 2em; }
+
+div.note .label         { margin-right: 0.5em;
+                          font-family: sans-serif; }
+
+address                 { font-size: 80%; }
+.release-info           { font-style: italic;
+                          font-size: 80%; }
+
+.titlegraphic           { vertical-align: top; }
+
+.verbatim pre           { color: #00008b;
+                          font-family: "lucida typewriter", lucidatypewriter,
+                                       monospace;
+                          font-size: 90%; }
+.verbatim               { margin-left: 2em; }
+.verbatim .footer       { padding: 0.05in;
+                          font-size: 85%;
+                          background-color: #99ccff;
+                          margin-right: 0.5in; }
+
+.grammar                { background-color: #99ccff;
+                          margin-right: 0.5in;
+                          padding: 0.05in; }
+.grammar-footer         { padding: 0.05in;
+                          font-size: 85%; }
+.grammartoken           { font-family: "lucida typewriter", lucidatypewriter,
+                                       monospace; }
+
+.productions                  { background-color: #bbeeff; }
+.productions a:active         { color: #ff0000; }
+.productions a:link:hover     { background-color: #99ccff; }
+.productions a:visited:hover  { background-color: #99ccff; }
+.productions a:visited        { color: #551a8b; }
+.productions a:link           { color: #0000bb; }
+.productions table            { vertical-align: baseline;
+                                empty-cells: show; }
+.productions > table td,
+.productions > table th       { padding: 2px; }
+.productions > table td:first-child,
+.productions > table td:last-child {
+                                font-family: "lucida typewriter",
+                                             lucidatypewriter,
+                                             monospace;
+                                }
+/* same as the second selector above, but expressed differently for Opera */
+.productions > table td:first-child + td + td {
+                                font-family: "lucida typewriter",
+                                             lucidatypewriter,
+                                             monospace;
+                                vertical-align: baseline;
+                                }
+.productions > table td:first-child + td {
+                                padding-left: 1em;
+                                padding-right: 1em;
+                                }
+.productions > table tr       { vertical-align: baseline; }
+
+.email                  { font-family: avantgarde, sans-serif; }
+.mailheader             { font-family: avantgarde, sans-serif; }
+.mimetype               { font-family: avantgarde, sans-serif; }
+.newsgroup              { font-family: avantgarde, sans-serif; }
+.url                    { font-family: avantgarde, sans-serif; }
+.file                   { font-family: avantgarde, sans-serif; }
+.guilabel               { font-family: avantgarde, sans-serif; }
+
+.realtable              { border-collapse: collapse;
+                          border-color: black;
+                          border-style: solid;
+                          border-width: 0px 0px 2px 0px;
+                          empty-cells: show;
+                          margin-left: auto;
+                          margin-right: auto;
+                          padding-left: 0.4em;
+                          padding-right: 0.4em;
+                          }
+.realtable tbody        { vertical-align: baseline; }
+.realtable tfoot        { display: table-footer-group; }
+.realtable thead        { background-color: #99ccff;
+                          border-width: 0px 0px 2px 1px;
+                          display: table-header-group;
+                          font-family: avantgarde, sans-serif;
+                          font-weight: bold;
+                          vertical-align: baseline;
+                          }
+.realtable thead :first-child {
+                          border-width: 0px 0px 2px 0px;
+                          }
+.realtable thead th     { border-width: 0px 0px 2px 1px }
+.realtable td,
+.realtable th           { border-color: black;
+                          border-style: solid;
+                          border-width: 0px 0px 1px 1px;
+                          padding-left: 0.4em;
+                          padding-right: 0.4em;
+                          }
+.realtable td:first-child,
+.realtable th:first-child {
+                          border-left-width: 0px;
+                          vertical-align: baseline;
+                          }
+.center                 { text-align: center; }
+.left                   { text-align: left; }
+.right                  { text-align: right; }
+
+.refcount-info          { font-style: italic; }
+.refcount-info .value   { font-weight: bold;
+                          color: #006600; }
+
+/*
+ * Some decoration for the "See also:" blocks, in part inspired by some of
+ * the styling on Lars Marius Garshol's XSA pages.
+ * (The blue in the navigation bars is #99CCFF.)
+ */
+.seealso                { background-color: #fffaf0;
+                          border: thin solid black;
+                          padding: 0pt 1em 4pt 1em; }
+
+.seealso > .heading     { font-size: 110%;
+                          font-weight: bold; }
+
+/*
+ * Class 'availability' is used for module availability statements at
+ * the top of modules.
+ */
+.availability .platform { font-weight: bold; }
+
+
+/*
+ * Additional styles for the distutils package.
+ */
+.du-command             { font-family: monospace; }
+.du-option              { font-family: avantgarde, sans-serif; }
+.du-filevar             { font-family: avantgarde, sans-serif;
+                          font-style: italic; }
+.du-xxx:before          { content: "** ";
+                          font-weight: bold; }
+.du-xxx:after           { content: " **";
+                          font-weight: bold; }
+
+
+/*
+ * Some specialization for printed output.
+ */
+ at media print {
+  .online-navigation    { display: none; }
+  }

Added: sandbox/trunk/emailpkg/3_0/docs/mimelib.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/mimelib.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node1.html" />
+<meta name='aesop' content='information' />
+<title>email Package Reference</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="1 Introduction"
+  href="node1.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node1.html">1 Introduction</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<P>
+
+<div class="titlepage">
+<div class='center'>
+<h1>email Package Reference</h1>
+<p><b><font size="+2">Barry Warsaw</font></b></p>
+<p><span class="email">barry at python.org</span></p>
+<p><strong>Release 3.0</strong><br />
+<strong>March 5, 2006</strong></p>
+<p></p>
+</div>
+</div>
+
+<P>
+
+<H3>Abstract:</H3>
+<DIV CLASS="ABSTRACT">
+  The <tt class="module">email</tt> package provides classes and utilities to create,
+  parse, generate, and modify email messages, conforming to all the
+  relevant email and MIME related RFCs.
+</DIV>
+<P>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="node1.html">1 Introduction</a>
+<LI><A href="module-email.html">2 <tt class="module">email</tt> --
+	 An email and MIME handling package</a>
+<UL>
+<LI><A href="module-email.Message.html">2.1 Representing an email message</a>
+<UL>
+<LI><A href="node4.html">2.1.1 Deprecated methods</a>
+</ul>
+<LI><A href="module-email.Parser.html">2.2 Parsing email messages</a>
+<UL>
+<LI><A href="node6.html">2.2.1 FeedParser API</a>
+<LI><A href="node7.html">2.2.2 Parser class API</a>
+<LI><A href="node8.html">2.2.3 Additional notes</a>
+</ul>
+<LI><A href="module-email.Generator.html">2.3 Generating MIME documents</a>
+<UL>
+<LI><A href="node10.html">2.3.1 Deprecated methods</a>
+</ul>
+<LI><A href="node11.html">2.4 Creating email and MIME objects from scratch</a>
+<LI><A href="module-email.Header.html">2.5 Internationalized headers</a>
+<LI><A href="module-email.Charset.html">2.6 Representing character sets</a>
+<LI><A href="module-email.Encoders.html">2.7 Encoders</a>
+<LI><A href="module-email.Errors.html">2.8 Exception and Defect classes</a>
+<LI><A href="module-email.Utils.html">2.9 Miscellaneous utilities</a>
+<LI><A href="module-email.Iterators.html">2.10 Iterators</a>
+<LI><A href="node18.html">2.11 Package History</a>
+<LI><A href="node19.html">2.12 Differences from <tt class="module">mimelib</tt></a>
+<LI><A href="node20.html">2.13 Examples</a>
+</ul>
+<LI><A href="about.html">About this document ...</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></td>
+<td class='online-navigation'><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></td>
+<td class='online-navigation'><a rel="next" title="1 Introduction"
+  href="node1.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node1.html">1 Introduction</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/mimelib.pdf
==============================================================================
Binary file. No diff available.

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.Charset.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.Charset.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,434 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-email.Encoders.html" />
+<link rel="prev" href="module-email.Header.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="module-email.Encoders.html" />
+<meta name='aesop' content='information' />
+<title>2.6 Representing character sets</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.5 Internationalized headers"
+  href="module-email.Header.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.7 Encoders"
+  href="module-email.Encoders.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Header.html">2.5 Internationalized headers</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Encoders.html">2.7 Encoders</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000260000000000000000">
+2.6 Representing character sets</A>
+</H2>
+<A NAME="module-email.Charset"></A>
+
+<P>
+This module provides a class <tt class="class">Charset</tt> for representing
+character sets and character set conversions in email messages, as
+well as a character set registry and several convenience methods for
+manipulating this registry.  Instances of <tt class="class">Charset</tt> are used in
+several other modules within the <tt class="module">email</tt> package.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-83' xml:id='l2h-83' class="class">Charset</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>input_charset</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Map character sets to their email properties.
+
+<P>
+This class provides information about the requirements imposed on
+email for a specific character set.  It also provides convenience
+routines for converting between character sets, given the availability
+of the applicable codecs.  Given a character set, it will do its best
+to provide information on how to use that character set in an email
+message in an RFC-compliant way.
+
+<P>
+Certain character sets must be encoded with quoted-printable or base64
+when used in email headers or bodies.  Certain character sets must be
+converted outright, and are not allowed in email.
+
+<P>
+Optional <var>input_charset</var> is as described below; it is always
+coerced to lower case.  After being alias normalized it is also used
+as a lookup into the registry of character sets to find out the header
+encoding, body encoding, and output conversion codec to be used for
+the character set.  For example, if
+<var>input_charset</var> is <code>iso-8859-1</code>, then headers and bodies will
+be encoded using quoted-printable and no output conversion codec is
+necessary.  If <var>input_charset</var> is <code>euc-jp</code>, then headers will
+be encoded with base64, bodies will not be encoded, but output text
+will be converted from the <code>euc-jp</code> character set to the
+<code>iso-2022-jp</code> character set.
+</dl>
+
+<P>
+<tt class="class">Charset</tt> instances have the following data attributes:
+
+<P>
+<dl><dt><b><tt id='l2h-84' xml:id='l2h-84'>input_charset</tt></b></dt>
+<dd>
+The initial character set specified.  Common aliases are converted to
+their <em>official</em> email names (e.g. <code>latin_1</code> is converted to
+<code>iso-8859-1</code>).  Defaults to 7-bit <code>us-ascii</code>.
+</dd></dl>
+
+<P>
+<dl><dt><b><tt id='l2h-85' xml:id='l2h-85'>header_encoding</tt></b></dt>
+<dd>
+If the character set must be encoded before it can be used in an
+email header, this attribute will be set to <code>Charset.QP</code> (for
+quoted-printable), <code>Charset.BASE64</code> (for base64 encoding), or
+<code>Charset.SHORTEST</code> for the shortest of QP or BASE64 encoding.
+Otherwise, it will be <code>None</code>.
+</dd></dl>
+
+<P>
+<dl><dt><b><tt id='l2h-86' xml:id='l2h-86'>body_encoding</tt></b></dt>
+<dd>
+Same as <var>header_encoding</var>, but describes the encoding for the
+mail message's body, which indeed may be different than the header
+encoding.  <code>Charset.SHORTEST</code> is not allowed for
+<var>body_encoding</var>.
+</dd></dl>
+
+<P>
+<dl><dt><b><tt id='l2h-87' xml:id='l2h-87'>output_charset</tt></b></dt>
+<dd>
+Some character sets must be converted before they can be used in
+email headers or bodies.  If the <var>input_charset</var> is one of
+them, this attribute will contain the name of the character set
+output will be converted to.  Otherwise, it will be <code>None</code>.
+</dd></dl>
+
+<P>
+<dl><dt><b><tt id='l2h-88' xml:id='l2h-88'>input_codec</tt></b></dt>
+<dd>
+The name of the Python codec used to convert the <var>input_charset</var> to
+Unicode.  If no conversion codec is necessary, this attribute will be
+<code>None</code>.
+</dd></dl>
+
+<P>
+<dl><dt><b><tt id='l2h-89' xml:id='l2h-89'>output_codec</tt></b></dt>
+<dd>
+The name of the Python codec used to convert Unicode to the
+<var>output_charset</var>.  If no conversion codec is necessary, this
+attribute will have the same value as the <var>input_codec</var>.
+</dd></dl>
+
+<P>
+<tt class="class">Charset</tt> instances also have the following methods:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-90' xml:id='l2h-90' class="method">get_body_encoding</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the content transfer encoding used for body encoding.
+
+<P>
+This is either the string "<tt class="samp">quoted-printable</tt>" or "<tt class="samp">base64</tt>"depending on the encoding used, or it is a function, in which case you
+should call the function with a single argument, the Message object
+being encoded.  The function should then set the
+<span class="mailheader">Content-Transfer-Encoding:</span> header itself to whatever is
+appropriate.
+
+<P>
+Returns the string "<tt class="samp">quoted-printable</tt>" if
+<var>body_encoding</var> is <code>QP</code>, returns the string
+"<tt class="samp">base64</tt>" if <var>body_encoding</var> is <code>BASE64</code>, and returns the
+string "<tt class="samp">7bit</tt>" otherwise.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-91' xml:id='l2h-91' class="method">convert</tt></b>(</nobr></td>
+  <td><var>s</var>)</td></tr></table></dt>
+<dd>
+Convert the string <var>s</var> from the <var>input_codec</var> to the
+<var>output_codec</var>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-92' xml:id='l2h-92' class="method">to_splittable</tt></b>(</nobr></td>
+  <td><var>s</var>)</td></tr></table></dt>
+<dd>
+Convert a possibly multibyte string to a safely splittable format.
+<var>s</var> is the string to split.
+
+<P>
+Uses the <var>input_codec</var> to try and convert the string to Unicode,
+so it can be safely split on character boundaries (even for multibyte
+characters).
+
+<P>
+Returns the string as-is if it isn't known how to convert <var>s</var> to
+Unicode with the <var>input_charset</var>.
+
+<P>
+Characters that could not be converted to Unicode will be replaced
+with the Unicode replacement character "<tt class="character">U+FFFD</tt>".
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-93' xml:id='l2h-93' class="method">from_splittable</tt></b>(</nobr></td>
+  <td><var>ustr</var><big>[</big><var>, to_output</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Convert a splittable string back into an encoded string.  <var>ustr</var>
+is a Unicode string to ``unsplit''.
+
+<P>
+This method uses the proper codec to try and convert the string from
+Unicode back into an encoded format.  Return the string as-is if it is
+not Unicode, or if it could not be converted from Unicode.
+
+<P>
+Characters that could not be converted from Unicode will be replaced
+with an appropriate character (usually "<tt class="character">?</tt>").
+
+<P>
+If <var>to_output</var> is <code>True</code> (the default), uses
+<var>output_codec</var> to convert to an 
+encoded format.  If <var>to_output</var> is <code>False</code>, it uses
+<var>input_codec</var>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-94' xml:id='l2h-94' class="method">get_output_charset</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the output character set.
+
+<P>
+This is the <var>output_charset</var> attribute if that is not <code>None</code>,
+otherwise it is <var>input_charset</var>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-95' xml:id='l2h-95' class="method">encoded_header_len</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the length of the encoded header string, properly calculating
+for quoted-printable or base64 encoding.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-96' xml:id='l2h-96' class="method">header_encode</tt></b>(</nobr></td>
+  <td><var>s</var><big>[</big><var>, convert</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Header-encode the string <var>s</var>.
+
+<P>
+If <var>convert</var> is <code>True</code>, the string will be converted from the
+input charset to the output charset automatically.  This is not useful
+for multibyte character sets, which have line length issues (multibyte
+characters must be split on a character, not a byte boundary); use the
+higher-level <tt class="class">Header</tt> class to deal with these issues (see
+<tt class="module"><a href="module-email.Header.html">email.Header</a></tt>).  <var>convert</var> defaults to <code>False</code>.
+
+<P>
+The type of encoding (base64 or quoted-printable) will be based on
+the <var>header_encoding</var> attribute.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-97' xml:id='l2h-97' class="method">body_encode</tt></b>(</nobr></td>
+  <td><var>s</var><big>[</big><var>, convert</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Body-encode the string <var>s</var>.
+
+<P>
+If <var>convert</var> is <code>True</code> (the default), the string will be
+converted from the input charset to output charset automatically.
+Unlike <tt class="method">header_encode()</tt>, there are no issues with byte
+boundaries and multibyte charsets in email bodies, so this is usually
+pretty safe.
+
+<P>
+The type of encoding (base64 or quoted-printable) will be based on
+the <var>body_encoding</var> attribute.
+</dl>
+
+<P>
+The <tt class="class">Charset</tt> class also provides a number of methods to support
+standard operations and built-in functions.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-98' xml:id='l2h-98' class="method">__str__</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Returns <var>input_charset</var> as a string coerced to lower case.
+<tt class="method">__repr__()</tt> is an alias for <tt class="method">__str__()</tt>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-99' xml:id='l2h-99' class="method">__eq__</tt></b>(</nobr></td>
+  <td><var>other</var>)</td></tr></table></dt>
+<dd>
+This method allows you to compare two <tt class="class">Charset</tt> instances for equality.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-100' xml:id='l2h-100' class="method">__ne__</tt></b>(</nobr></td>
+  <td><var>other</var>)</td></tr></table></dt>
+<dd>
+This method allows you to compare two <tt class="class">Charset</tt> instances for inequality.
+</dl>
+
+<P>
+The <tt class="module">email.Charset</tt> module also provides the following
+functions for adding new entries to the global character set, alias,
+and codec registries:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-101' xml:id='l2h-101' class="function">add_charset</tt></b>(</nobr></td>
+  <td><var>charset</var><big>[</big><var>, header_enc</var><big>[</big><var>,
+    body_enc</var><big>[</big><var>, output_charset</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Add character properties to the global registry.
+
+<P>
+<var>charset</var> is the input character set, and must be the canonical
+name of a character set.
+
+<P>
+Optional <var>header_enc</var> and <var>body_enc</var> is either
+<code>Charset.QP</code> for quoted-printable, <code>Charset.BASE64</code> for
+base64 encoding, <code>Charset.SHORTEST</code> for the shortest of
+quoted-printable or base64 encoding, or <code>None</code> for no encoding.
+<code>SHORTEST</code> is only valid for <var>header_enc</var>. The default is
+<code>None</code> for no encoding.
+
+<P>
+Optional <var>output_charset</var> is the character set that the output
+should be in.  Conversions will proceed from input charset, to
+Unicode, to the output charset when the method
+<tt class="method">Charset.convert()</tt> is called.  The default is to output in the
+same character set as the input.
+
+<P>
+Both <var>input_charset</var> and <var>output_charset</var> must have Unicode
+codec entries in the module's character set-to-codec mapping; use
+<tt class="function">add_codec()</tt> to add codecs the module does
+not know about.  See the <tt class="module"><a href="module-codecs.html">codecs</a></tt> module's documentation for
+more information.
+
+<P>
+The global character set registry is kept in the module global
+dictionary <code>CHARSETS</code>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-102' xml:id='l2h-102' class="function">add_alias</tt></b>(</nobr></td>
+  <td><var>alias, canonical</var>)</td></tr></table></dt>
+<dd>
+Add a character set alias.  <var>alias</var> is the alias name,
+e.g. <code>latin-1</code>.  <var>canonical</var> is the character set's canonical
+name, e.g. <code>iso-8859-1</code>.
+
+<P>
+The global charset alias registry is kept in the module global
+dictionary <code>ALIASES</code>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-103' xml:id='l2h-103' class="function">add_codec</tt></b>(</nobr></td>
+  <td><var>charset, codecname</var>)</td></tr></table></dt>
+<dd>
+Add a codec that map characters in the given character set to and from
+Unicode.
+
+<P>
+<var>charset</var> is the canonical name of a character set.
+<var>codecname</var> is the name of a Python codec, as appropriate for the
+second argument to the <tt class="function">unicode()</tt> built-in, or to the
+<tt class="method">encode()</tt> method of a Unicode string.
+</dl>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.5 Internationalized headers"
+  href="module-email.Header.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.7 Encoders"
+  href="module-email.Encoders.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Header.html">2.5 Internationalized headers</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Encoders.html">2.7 Encoders</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.Encoders.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.Encoders.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-email.Errors.html" />
+<link rel="prev" href="module-email.Charset.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="module-email.Errors.html" />
+<meta name='aesop' content='information' />
+<title>2.7 Encoders</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.6 Representing character sets"
+  href="module-email.Charset.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.8 Exception and Defect"
+  href="module-email.Errors.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Charset.html">2.6 Representing character sets</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Errors.html">2.8 Exception and Defect</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000270000000000000000">
+2.7 Encoders</A>
+</H2>
+<A NAME="module-email.Encoders"></A>
+
+<P>
+When creating <tt class="class">Message</tt> objects from scratch, you often need to
+encode the payloads for transport through compliant mail servers.
+This is especially true for <span class="mimetype">image/*</span> and <span class="mimetype">text/*</span>
+type messages containing binary data.
+
+<P>
+The <tt class="module">email</tt> package provides some convenient encodings in its
+<tt class="module">Encoders</tt> module.  These encoders are actually used by the
+<tt class="class">MIMEAudio</tt> and <tt class="class">MIMEImage</tt> class constructors to provide default
+encodings.  All encoder functions take exactly one argument, the message
+object to encode.  They usually extract the payload, encode it, and reset the
+payload to this newly encoded value.  They should also set the
+<span class="mailheader">Content-Transfer-Encoding:</span> header as appropriate.
+
+<P>
+Here are the encoding functions provided:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-105' xml:id='l2h-105' class="function">encode_quopri</tt></b>(</nobr></td>
+  <td><var>msg</var>)</td></tr></table></dt>
+<dd>
+Encodes the payload into quoted-printable form and sets the
+<span class="mailheader">Content-Transfer-Encoding:</span> header to
+<code>quoted-printable</code><A NAME="tex2html35"
+  HREF="#foot2094"><SUP>2</SUP></A>.
+This is a good encoding to use when most of your payload is normal
+printable data, but contains a few unprintable characters.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-106' xml:id='l2h-106' class="function">encode_base64</tt></b>(</nobr></td>
+  <td><var>msg</var>)</td></tr></table></dt>
+<dd>
+Encodes the payload into base64 form and sets the
+<span class="mailheader">Content-Transfer-Encoding:</span> header to
+<code>base64</code>.  This is a good encoding to use when most of your payload
+is unprintable data since it is a more compact form than
+quoted-printable.  The drawback of base64 encoding is that it
+renders the text non-human readable.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-107' xml:id='l2h-107' class="function">encode_7or8bit</tt></b>(</nobr></td>
+  <td><var>msg</var>)</td></tr></table></dt>
+<dd>
+This doesn't actually modify the message's payload, but it does set
+the <span class="mailheader">Content-Transfer-Encoding:</span> header to either <code>7bit</code> or
+<code>8bit</code> as appropriate, based on the payload data.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-108' xml:id='l2h-108' class="function">encode_noop</tt></b>(</nobr></td>
+  <td><var>msg</var>)</td></tr></table></dt>
+<dd>
+This does nothing; it doesn't even set the
+<span class="mailheader">Content-Transfer-Encoding:</span> header.
+</dl>
+
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot2094">...quoted-printable</A><A
+ href="module-email.Encoders.html#tex2html35"><SUP>2</SUP></A></DT>
+<DD>Note that encoding with
+<tt class="method">encode_quopri()</tt> also encodes all tabs and space characters in
+the data.
+
+</DD>
+</DL>
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.6 Representing character sets"
+  href="module-email.Charset.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.8 Exception and Defect"
+  href="module-email.Errors.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Charset.html">2.6 Representing character sets</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Errors.html">2.8 Exception and Defect</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.Errors.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.Errors.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,224 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-email.Utils.html" />
+<link rel="prev" href="module-email.Encoders.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="module-email.Utils.html" />
+<meta name='aesop' content='information' />
+<title>2.8 Exception and Defect classes</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.7 Encoders"
+  href="module-email.Encoders.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.9 Miscellaneous utilities"
+  href="module-email.Utils.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Encoders.html">2.7 Encoders</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Utils.html">2.9 Miscellaneous utilities</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000280000000000000000">
+2.8 Exception and Defect classes</A>
+</H2>
+<A NAME="module-email.Errors"></A>
+
+<P>
+The following exception classes are defined in the
+<tt class="module">email.Errors</tt> module:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">exception</span>&nbsp;<tt id='l2h-110' xml:id='l2h-110' class="exception">MessageError</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+This is the base class for all exceptions that the <tt class="module">email</tt>
+package can raise.  It is derived from the standard
+<tt class="exception">Exception</tt> class and defines no additional methods.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">exception</span>&nbsp;<tt id='l2h-111' xml:id='l2h-111' class="exception">MessageParseError</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+This is the base class for exceptions thrown by the <tt class="class">Parser</tt>
+class.  It is derived from <tt class="exception">MessageError</tt>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">exception</span>&nbsp;<tt id='l2h-112' xml:id='l2h-112' class="exception">HeaderParseError</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Raised under some error conditions when parsing the <a class="rfc" id='rfcref-3204' xml:id='rfcref-3204'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> headers of
+a message, this class is derived from <tt class="exception">MessageParseError</tt>.
+It can be raised from the <tt class="method">Parser.parse()</tt> or
+<tt class="method">Parser.parsestr()</tt> methods.
+
+<P>
+Situations where it can be raised include finding an envelope
+header after the first <a class="rfc" id='rfcref-3206' xml:id='rfcref-3206'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> header of the message, finding a
+continuation line before the first <a class="rfc" id='rfcref-3208' xml:id='rfcref-3208'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> header is found, or finding
+a line in the headers which is neither a header or a continuation
+line.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">exception</span>&nbsp;<tt id='l2h-113' xml:id='l2h-113' class="exception">BoundaryError</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Raised under some error conditions when parsing the <a class="rfc" id='rfcref-3210' xml:id='rfcref-3210'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> headers of
+a message, this class is derived from <tt class="exception">MessageParseError</tt>.
+It can be raised from the <tt class="method">Parser.parse()</tt> or
+<tt class="method">Parser.parsestr()</tt> methods.
+
+<P>
+Situations where it can be raised include not being able to find the
+starting or terminating boundary in a <span class="mimetype">multipart/*</span> message
+when strict parsing is used.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">exception</span>&nbsp;<tt id='l2h-114' xml:id='l2h-114' class="exception">MultipartConversionError</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Raised when a payload is added to a <tt class="class">Message</tt> object using
+<tt class="method">add_payload()</tt>, but the payload is already a scalar and the
+message's <span class="mailheader">Content-Type:</span> main type is not either
+<span class="mimetype">multipart</span> or missing.  <tt class="exception">MultipartConversionError</tt>
+multiply inherits from <tt class="exception">MessageError</tt> and the built-in
+<tt class="exception">TypeError</tt>.
+
+<P>
+Since <tt class="method">Message.add_payload()</tt> is deprecated, this exception is
+rarely raised in practice.  However the exception may also be raised
+if the <tt class="method">attach()</tt> method is called on an instance of a class
+derived from <tt class="class">MIMENonMultipart</tt> (e.g. <tt class="class">MIMEImage</tt>).
+</dl>
+
+<P>
+Here's the list of the defects that the <tt class="class">FeedParser</tt> can find while
+parsing messages.  Note that the defects are added to the message where the
+problem was found, so for example, if a message nested inside a
+<span class="mimetype">multipart/alternative</span> had a malformed header, that nested message
+object would have a defect, but the containing messages would not.
+
+<P>
+All defect classes are subclassed from <tt class="class">email.Errors.MessageDefect</tt>, but
+this class is <em>not</em> an exception!
+
+<P>
+
+<span class="versionnote">New in version 2.4:
+All the defect classes were added.</span>
+
+<P>
+
+<UL>
+<LI><tt class="class">NoBoundaryInMultipartDefect</tt> - A message claimed to be a
+      multipart, but had no <span class="mimetype">boundary</span> parameter.
+
+<P>
+</LI>
+<LI><tt class="class">StartBoundaryNotFoundDefect</tt> - The start boundary claimed in the
+      <span class="mailheader">Content-Type:</span> header was never found.
+
+<P>
+</LI>
+<LI><tt class="class">FirstHeaderLineIsContinuationDefect</tt> - The message had a
+      continuation line as its first header line.
+
+<P>
+</LI>
+<LI><tt class="class">MisplacedEnvelopeHeaderDefect</tt> - A ``Unix From'' header was found
+      in the middle of a header block.
+
+<P>
+</LI>
+<LI><tt class="class">MalformedHeaderDefect</tt> - A header was found that was missing a
+      colon, or was otherwise malformed.
+
+<P>
+</LI>
+<LI><tt class="class">MultipartInvariantViolationDefect</tt> - A message claimed to be a
+      <span class="mimetype">multipart</span>, but no subparts were found.  Note that when a
+      message has this defect, its <tt class="method">is_multipart()</tt> method may return
+      false even though its content type claims to be <span class="mimetype">multipart</span>.
+</LI>
+</UL>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.7 Encoders"
+  href="module-email.Encoders.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.9 Miscellaneous utilities"
+  href="module-email.Utils.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Encoders.html">2.7 Encoders</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Utils.html">2.9 Miscellaneous utilities</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.Generator.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.Generator.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,289 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node11.html" />
+<link rel="prev" href="module-email.Parser.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="node10.html" />
+<meta name='aesop' content='information' />
+<title>2.3 Generating MIME documents</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.2.3 Additional notes"
+  href="node8.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.3.1 Deprecated methods"
+  href="node10.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node8.html">2.2.3 Additional notes</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node10.html">2.3.1 Deprecated methods</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000230000000000000000">
+2.3 Generating MIME documents</A>
+</H2>
+<A NAME="module-email.Generator"></A>
+
+<P>
+One of the most common tasks is to generate the flat text of the email
+message represented by a message object structure.  You will need to do
+this if you want to send your message via the <tt class="module"><a href="module-smtplib.html">smtplib</a></tt>
+module or the <tt class="module"><a href="module-nntplib.html">nntplib</a></tt> module, or print the message on the
+console.  Taking a message object structure and producing a flat text
+document is the job of the <tt class="class">Generator</tt> class.
+
+<P>
+Again, as with the <tt class="module"><a href="module-email.Parser.html">email.Parser</a></tt> module, you aren't limited
+to the functionality of the bundled generator; you could write one
+from scratch yourself.  However the bundled generator knows how to
+generate most email in a standards-compliant way, should handle MIME
+and non-MIME email messages just fine, and is designed so that the
+transformation from flat text, to a message structure via the
+<tt class="class">Parser</tt> class, and back to flat text, is idempotent (the input
+is identical to the output).
+
+<P>
+Here are the public methods of the <tt class="class">Generator</tt> class:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-59' xml:id='l2h-59' class="class">Generator</tt></b>(</nobr></td>
+  <td><var>outfp</var><big>[</big><var>, mangle_from_</var><big>[</big><var>,
+    maxheaderlen</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+The constructor for the <tt class="class">Generator</tt> class takes a file-like
+object called <var>outfp</var> for an argument.  <var>outfp</var> must support
+the <tt class="method">write()</tt> method and be usable as the output file in a
+Python extended print statement.
+
+<P>
+Optional <var>mangle_from_</var> is a flag that, when <code>True</code>, puts a
+"<tt class="samp">&gt;</tt>" character in front of any line in the body that starts exactly as
+"<tt class="samp">From </tt>", i.e. <code>From</code> followed by a space at the beginning of the
+line.  This is the only guaranteed portable way to avoid having such
+lines be mistaken for a Unix mailbox format envelope header separator (see
+<a class="ulink" href="http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/content-length.html"
+  >WHY THE CONTENT-LENGTH FORMAT IS BAD</a>
+for details).  <var>mangle_from_</var> defaults to <code>True</code>, but you
+might want to set this to <code>False</code> if you are not writing Unix
+mailbox format files.
+
+<P>
+Optional <var>maxheaderlen</var> specifies the longest length for a
+non-continued header.  When a header line is longer than
+<var>maxheaderlen</var> (in characters, with tabs expanded to 8 spaces),
+the header will be split as defined in the <tt class="module">email.Header</tt>
+class.  Set to zero to disable header wrapping.  The default is 78, as
+recommended (but not required) by <a class="rfc" id='rfcref-3112' xml:id='rfcref-3112'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>.
+</dl>
+
+<P>
+The other public <tt class="class">Generator</tt> methods are:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-60' xml:id='l2h-60' class="method">flatten</tt></b>(</nobr></td>
+  <td><var>msg</var><big>[</big><var>, unixfrom</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Print the textual representation of the message object structure rooted at
+<var>msg</var> to the output file specified when the <tt class="class">Generator</tt>
+instance was created.  Subparts are visited depth-first and the
+resulting text will be properly MIME encoded.
+
+<P>
+Optional <var>unixfrom</var> is a flag that forces the printing of the
+envelope header delimiter before the first <a class="rfc" id='rfcref-3114' xml:id='rfcref-3114'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> header of the
+root message object.  If the root object has no envelope header, a
+standard one is crafted.  By default, this is set to <code>False</code> to
+inhibit the printing of the envelope delimiter.
+
+<P>
+Note that for subparts, no envelope header is ever printed.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-61' xml:id='l2h-61' class="method">clone</tt></b>(</nobr></td>
+  <td><var>fp</var>)</td></tr></table></dt>
+<dd>
+Return an independent clone of this <tt class="class">Generator</tt> instance with
+the exact same options.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-62' xml:id='l2h-62' class="method">write</tt></b>(</nobr></td>
+  <td><var>s</var>)</td></tr></table></dt>
+<dd>
+Write the string <var>s</var> to the underlying file object,
+i.e. <var>outfp</var> passed to <tt class="class">Generator</tt>'s constructor.  This
+provides just enough file-like API for <tt class="class">Generator</tt> instances to
+be used in extended print statements.
+</dl>
+
+<P>
+As a convenience, see the methods <tt class="method">Message.as_string()</tt> and
+<code>str(aMessage)</code>, a.k.a. <tt class="method">Message.__str__()</tt>, which
+simplify the generation of a formatted string representation of a
+message object.  For more detail, see <tt class="module"><a href="module-email.Message.html">email.Message</a></tt>.
+
+<P>
+The <tt class="module">email.Generator</tt> module also provides a derived class,
+called <tt class="class">DecodedGenerator</tt> which is like the <tt class="class">Generator</tt>
+base class, except that non-<span class="mimetype">text</span> parts are substituted with
+a format string representing the part.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-63' xml:id='l2h-63' class="class">DecodedGenerator</tt></b>(</nobr></td>
+  <td><var>outfp</var><big>[</big><var>, mangle_from_</var><big>[</big><var>,
+    maxheaderlen</var><big>[</big><var>, fmt</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+
+<P>
+This class, derived from <tt class="class">Generator</tt> walks through all the
+subparts of a message.  If the subpart is of main type
+<span class="mimetype">text</span>, then it prints the decoded payload of the subpart.
+Optional <var>_mangle_from_</var> and <var>maxheaderlen</var> are as with the
+<tt class="class">Generator</tt> base class.
+
+<P>
+If the subpart is not of main type <span class="mimetype">text</span>, optional <var>fmt</var>
+is a format string that is used instead of the message payload.
+<var>fmt</var> is expanded with the following keywords, "<tt class="samp">%(keyword)s</tt>"format:
+
+<P>
+
+<UL>
+<LI><code>type</code> - Full MIME type of the non-<span class="mimetype">text</span> part
+
+<P>
+</LI>
+<LI><code>maintype</code> - Main MIME type of the non-<span class="mimetype">text</span> part
+
+<P>
+</LI>
+<LI><code>subtype</code> - Sub-MIME type of the non-<span class="mimetype">text</span> part
+
+<P>
+</LI>
+<LI><code>filename</code> - Filename of the non-<span class="mimetype">text</span> part
+
+<P>
+</LI>
+<LI><code>description</code> - Description associated with the
+      non-<span class="mimetype">text</span> part
+
+<P>
+</LI>
+<LI><code>encoding</code> - Content transfer encoding of the
+      non-<span class="mimetype">text</span> part
+
+<P>
+</LI>
+</UL>
+
+<P>
+The default value for <var>fmt</var> is <code>None</code>, meaning
+
+<P>
+<div class="verbatim"><pre>
+[Non-text (%(type)s) part of message omitted, filename %(filename)s]
+</pre></div>
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="node10.html">2.3.1 Deprecated methods</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.2.3 Additional notes"
+  href="node8.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.3.1 Deprecated methods"
+  href="node10.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node8.html">2.2.3 Additional notes</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node10.html">2.3.1 Deprecated methods</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.Header.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.Header.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,340 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-email.Charset.html" />
+<link rel="prev" href="node11.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="module-email.Charset.html" />
+<meta name='aesop' content='information' />
+<title>2.5 Internationalized headers</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.4 Creating email and"
+  href="node11.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.6 Representing character sets"
+  href="module-email.Charset.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node11.html">2.4 Creating email and</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Charset.html">2.6 Representing character sets</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000250000000000000000">
+2.5 Internationalized headers</A>
+</H2>
+<A NAME="module-email.Header"></A>
+
+<P>
+<a class="rfc" id='rfcref-3137' xml:id='rfcref-3137'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> is the base standard that describes the format of email
+messages.  It derives from the older <a class="rfc" id='rfcref-3139' xml:id='rfcref-3139'
+href="http://www.faqs.org/rfcs/rfc822.html">RFC 822</a> standard which came
+into widespread use at a time when most email was composed of ASCII
+characters only.  <a class="rfc" id='rfcref-3141' xml:id='rfcref-3141'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> is a specification written assuming email
+contains only 7-bit ASCII characters.
+
+<P>
+Of course, as email has been deployed worldwide, it has become
+internationalized, such that language specific character sets can now
+be used in email messages.  The base standard still requires email
+messages to be transferred using only 7-bit ASCII characters, so a
+slew of RFCs have been written describing how to encode email
+containing non-ASCII characters into <a class="rfc" id='rfcref-3143' xml:id='rfcref-3143'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>-compliant format.
+These RFCs include <a class="rfc" id='rfcref-3145' xml:id='rfcref-3145'
+href="http://www.faqs.org/rfcs/rfc2045.html">RFC 2045</a>, <a class="rfc" id='rfcref-3147' xml:id='rfcref-3147'
+href="http://www.faqs.org/rfcs/rfc2046.html">RFC 2046</a>, <a class="rfc" id='rfcref-3149' xml:id='rfcref-3149'
+href="http://www.faqs.org/rfcs/rfc2047.html">RFC 2047</a>, and <a class="rfc" id='rfcref-3151' xml:id='rfcref-3151'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a>.
+The <tt class="module">email</tt> package supports these standards in its
+<tt class="module">email.Header</tt> and <tt class="module">email.Charset</tt> modules.
+
+<P>
+If you want to include non-ASCII characters in your email headers,
+say in the <span class="mailheader">Subject:</span> or <span class="mailheader">To:</span> fields, you should
+use the <tt class="class">Header</tt> class and assign the field in the
+<tt class="class">Message</tt> object to an instance of <tt class="class">Header</tt> instead of
+using a string for the header value.  For example:
+
+<P>
+<div class="verbatim"><pre>
+&gt;&gt;&gt; from email.Message import Message
+&gt;&gt;&gt; from email.Header import Header
+&gt;&gt;&gt; msg = Message()
+&gt;&gt;&gt; h = Header('p\xf6stal', 'iso-8859-1')
+&gt;&gt;&gt; msg['Subject'] = h
+&gt;&gt;&gt; print msg.as_string()
+Subject: =?iso-8859-1?q?p=F6stal?=
+</pre></div>
+
+<P>
+Notice here how we wanted the <span class="mailheader">Subject:</span> field to contain a
+non-ASCII character?  We did this by creating a <tt class="class">Header</tt>
+instance and passing in the character set that the byte string was
+encoded in.  When the subsequent <tt class="class">Message</tt> instance was
+flattened, the <span class="mailheader">Subject:</span> field was properly <a class="rfc" id='rfcref-3153' xml:id='rfcref-3153'
+href="http://www.faqs.org/rfcs/rfc2047.html">RFC 2047</a>
+encoded.  MIME-aware mail readers would show this header using the
+embedded ISO-8859-1 character.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+<P>
+Here is the <tt class="class">Header</tt> class description:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-73' xml:id='l2h-73' class="class">Header</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>s</var><big>[</big><var>, charset</var><big>[</big><var>,
+    maxlinelen</var><big>[</big><var>, header_name</var><big>[</big><var>, continuation_ws</var><big>[</big><var>,
+    errors</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Create a MIME-compliant header that can contain strings in different
+character sets.
+
+<P>
+Optional <var>s</var> is the initial header value.  If <code>None</code> (the
+default), the initial header value is not set.  You can later append
+to the header with <tt class="method">append()</tt> method calls.  <var>s</var> may be a
+byte string or a Unicode string, but see the <tt class="method">append()</tt>
+documentation for semantics.
+
+<P>
+Optional <var>charset</var> serves two purposes: it has the same meaning as
+the <var>charset</var> argument to the <tt class="method">append()</tt> method.  It also
+sets the default character set for all subsequent <tt class="method">append()</tt>
+calls that omit the <var>charset</var> argument.  If <var>charset</var> is not
+provided in the constructor (the default), the <code>us-ascii</code>
+character set is used both as <var>s</var>'s initial charset and as the
+default for subsequent <tt class="method">append()</tt> calls.
+
+<P>
+The maximum line length can be specified explicit via
+<var>maxlinelen</var>.  For splitting the first line to a shorter value (to
+account for the field header which isn't included in <var>s</var>,
+e.g. <span class="mailheader">Subject:</span>) pass in the name of the field in
+<var>header_name</var>.  The default <var>maxlinelen</var> is 76, and the
+default value for <var>header_name</var> is <code>None</code>, meaning it is not
+taken into account for the first line of a long, split header.
+
+<P>
+Optional <var>continuation_ws</var> must be <a class="rfc" id='rfcref-3155' xml:id='rfcref-3155'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>-compliant folding
+whitespace, and is usually either a space or a hard tab character.
+This character will be prepended to continuation lines.
+</dl>
+
+<P>
+Optional <var>errors</var> is passed straight through to the
+<tt class="method">append()</tt> method.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-74' xml:id='l2h-74' class="method">append</tt></b>(</nobr></td>
+  <td><var>s</var><big>[</big><var>, charset</var><big>[</big><var>, errors</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Append the string <var>s</var> to the MIME header.
+
+<P>
+Optional <var>charset</var>, if given, should be a <tt class="class">Charset</tt> instance
+(see <tt class="module"><a href="module-email.Charset.html">email.Charset</a></tt>) or the name of a character set, which
+will be converted to a <tt class="class">Charset</tt> instance.  A value of
+<code>None</code> (the default) means that the <var>charset</var> given in the
+constructor is used.
+
+<P>
+<var>s</var> may be a byte string or a Unicode string.  If it is a byte
+string (i.e. <code>isinstance(s, str)</code> is true), then
+<var>charset</var> is the encoding of that byte string, and a
+<tt class="exception">UnicodeError</tt> will be raised if the string cannot be
+decoded with that character set.
+
+<P>
+If <var>s</var> is a Unicode string, then <var>charset</var> is a hint
+specifying the character set of the characters in the string.  In this
+case, when producing an <a class="rfc" id='rfcref-3157' xml:id='rfcref-3157'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>-compliant header using <a class="rfc" id='rfcref-3159' xml:id='rfcref-3159'
+href="http://www.faqs.org/rfcs/rfc2047.html">RFC 2047</a>
+rules, the Unicode string will be encoded using the following charsets
+in order: <code>us-ascii</code>, the <var>charset</var> hint, <code>utf-8</code>.  The
+first character set to not provoke a <tt class="exception">UnicodeError</tt> is used.
+
+<P>
+Optional <var>errors</var> is passed through to any <tt class="function">unicode()</tt> or
+<tt class="function">ustr.encode()</tt> call, and defaults to ``strict''.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-75' xml:id='l2h-75' class="method">encode</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>splitchars</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Encode a message header into an RFC-compliant format, possibly
+wrapping long lines and encapsulating non-ASCII parts in base64 or
+quoted-printable encodings.  Optional <var>splitchars</var> is a string
+containing characters to split long ASCII lines on, in rough support
+of <a class="rfc" id='rfcref-3161' xml:id='rfcref-3161'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>'s <em>highest level syntactic breaks</em>.  This doesn't
+affect <a class="rfc" id='rfcref-3163' xml:id='rfcref-3163'
+href="http://www.faqs.org/rfcs/rfc2047.html">RFC 2047</a> encoded lines.
+</dl>
+
+<P>
+The <tt class="class">Header</tt> class also provides a number of methods to support
+standard operators and built-in functions.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-76' xml:id='l2h-76' class="method">__str__</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+A synonym for <tt class="method">Header.encode()</tt>.  Useful for
+<code>str(aHeader)</code>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-77' xml:id='l2h-77' class="method">__unicode__</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+A helper for the built-in <tt class="function">unicode()</tt> function.  Returns the
+header as a Unicode string.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-78' xml:id='l2h-78' class="method">__eq__</tt></b>(</nobr></td>
+  <td><var>other</var>)</td></tr></table></dt>
+<dd>
+This method allows you to compare two <tt class="class">Header</tt> instances for equality.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-79' xml:id='l2h-79' class="method">__ne__</tt></b>(</nobr></td>
+  <td><var>other</var>)</td></tr></table></dt>
+<dd>
+This method allows you to compare two <tt class="class">Header</tt> instances for inequality.
+</dl>
+
+<P>
+The <tt class="module">email.Header</tt> module also provides the following
+convenient functions.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-80' xml:id='l2h-80' class="function">decode_header</tt></b>(</nobr></td>
+  <td><var>header</var>)</td></tr></table></dt>
+<dd>
+Decode a message header value without converting the character set.
+The header value is in <var>header</var>.
+
+<P>
+This function returns a list of <code>(decoded_string, charset)</code> pairs
+containing each of the decoded parts of the header.  <var>charset</var> is
+<code>None</code> for non-encoded parts of the header, otherwise a lower
+case string containing the name of the character set specified in the
+encoded string.
+
+<P>
+Here's an example:
+
+<P>
+<div class="verbatim"><pre>
+&gt;&gt;&gt; from email.Header import decode_header
+&gt;&gt;&gt; decode_header('=?iso-8859-1?q?p=F6stal?=')
+[('p\xf6stal', 'iso-8859-1')]
+</pre></div>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-81' xml:id='l2h-81' class="function">make_header</tt></b>(</nobr></td>
+  <td><var>decoded_seq</var><big>[</big><var>, maxlinelen</var><big>[</big><var>,
+    header_name</var><big>[</big><var>, continuation_ws</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Create a <tt class="class">Header</tt> instance from a sequence of pairs as returned
+by <tt class="function">decode_header()</tt>.
+
+<P>
+<tt class="function">decode_header()</tt> takes a header value string and returns a
+sequence of pairs of the format <code>(decoded_string, charset)</code> where
+<var>charset</var> is the name of the character set.
+
+<P>
+This function takes one of those sequence of pairs and returns a
+<tt class="class">Header</tt> instance.  Optional <var>maxlinelen</var>,
+<var>header_name</var>, and <var>continuation_ws</var> are as in the
+<tt class="class">Header</tt> constructor.
+</dl>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.4 Creating email and"
+  href="node11.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.6 Representing character sets"
+  href="module-email.Charset.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node11.html">2.4 Creating email and</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Charset.html">2.6 Representing character sets</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.Iterators.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.Iterators.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node18.html" />
+<link rel="prev" href="module-email.Utils.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="node18.html" />
+<meta name='aesop' content='information' />
+<title>2.10 Iterators</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.9 Miscellaneous utilities"
+  href="module-email.Utils.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.11 Package History"
+  href="node18.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Utils.html">2.9 Miscellaneous utilities</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node18.html">2.11 Package History</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION0002100000000000000000">
+2.10 Iterators</A>
+</H2>
+<A NAME="module-email.Iterators"></A>
+
+<P>
+Iterating over a message object tree is fairly easy with the
+<tt class="method">Message.walk()</tt> method.  The <tt class="module">email.Iterators</tt> module
+provides some useful higher level iterations over message object
+trees.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-131' xml:id='l2h-131' class="function">body_line_iterator</tt></b>(</nobr></td>
+  <td><var>msg</var><big>[</big><var>, decode</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+This iterates over all the payloads in all the subparts of <var>msg</var>,
+returning the string payloads line-by-line.  It skips over all the
+subpart headers, and it skips over any subpart with a payload that
+isn't a Python string.  This is somewhat equivalent to reading the
+flat text representation of the message from a file using
+<tt class="method">readline()</tt>, skipping over all the intervening headers.
+
+<P>
+Optional <var>decode</var> is passed through to <tt class="method">Message.get_payload()</tt>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-132' xml:id='l2h-132' class="function">typed_subpart_iterator</tt></b>(</nobr></td>
+  <td><var>msg</var><big>[</big><var>,
+    maintype</var><big>[</big><var>, subtype</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+This iterates over all the subparts of <var>msg</var>, returning only those
+subparts that match the MIME type specified by <var>maintype</var> and
+<var>subtype</var>.
+
+<P>
+Note that <var>subtype</var> is optional; if omitted, then subpart MIME
+type matching is done only with the main type.  <var>maintype</var> is
+optional too; it defaults to <span class="mimetype">text</span>.
+
+<P>
+Thus, by default <tt class="function">typed_subpart_iterator()</tt> returns each
+subpart that has a MIME type of <span class="mimetype">text/*</span>.
+</dl>
+
+<P>
+The following function has been added as a useful debugging tool.  It
+should <em>not</em> be considered part of the supported public interface
+for the package.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-133' xml:id='l2h-133' class="function">_structure</tt></b>(</nobr></td>
+  <td><var>msg</var><big>[</big><var>, fp</var><big>[</big><var>, level</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Prints an indented representation of the content types of the
+message object structure.  For example:
+
+<P>
+<div class="verbatim"><pre>
+&gt;&gt;&gt; msg = email.message_from_file(somefile)
+&gt;&gt;&gt; _structure(msg)
+multipart/mixed
+    text/plain
+    text/plain
+    multipart/digest
+        message/rfc822
+            text/plain
+        message/rfc822
+            text/plain
+        message/rfc822
+            text/plain
+        message/rfc822
+            text/plain
+        message/rfc822
+            text/plain
+    text/plain
+</pre></div>
+
+<P>
+Optional <var>fp</var> is a file-like object to print the output to.  It
+must be suitable for Python's extended print statement.  <var>level</var>
+is used internally.
+</dl>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.9 Miscellaneous utilities"
+  href="module-email.Utils.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.11 Package History"
+  href="node18.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Utils.html">2.9 Miscellaneous utilities</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node18.html">2.11 Package History</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.Message.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.Message.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,934 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-email.Parser.html" />
+<link rel="prev" href="module-email.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="node4.html" />
+<meta name='aesop' content='information' />
+<title>2.1 Representing an email message</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2 email  "
+  href="module-email.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.1.1 Deprecated methods"
+  href="node4.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.html">2 email  </A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node4.html">2.1.1 Deprecated methods</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000210000000000000000">
+2.1 Representing an email message</A>
+</H2>
+<A NAME="module-email.Message"></A>
+
+<P>
+The central class in the <tt class="module">email</tt> package is the
+<tt class="class">Message</tt> class; it is the base class for the <tt class="module">email</tt>
+object model.  <tt class="class">Message</tt> provides the core functionality for
+setting and querying header fields, and for accessing message bodies.
+
+<P>
+Conceptually, a <tt class="class">Message</tt> object consists of <em>headers</em> and
+<em>payloads</em>.  Headers are <a class="rfc" id='rfcref-3065' xml:id='rfcref-3065'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> style field names and
+values where the field name and value are separated by a colon.  The
+colon is not part of either the field name or the field value.
+
+<P>
+Headers are stored and returned in case-preserving form but are
+matched case-insensitively.  There may also be a single envelope
+header, also known as the <em>Unix-From</em> header or the
+<code>From_</code> header.  The payload is either a string in the case of
+simple message objects or a list of <tt class="class">Message</tt> objects for
+MIME container documents (e.g. <span class="mimetype">multipart/*</span> and
+<span class="mimetype">message/rfc822</span>).
+
+<P>
+<tt class="class">Message</tt> objects provide a mapping style interface for
+accessing the message headers, and an explicit interface for accessing
+both the headers and the payload.  It provides convenience methods for
+generating a flat text representation of the message object tree, for
+accessing commonly used header parameters, and for recursively walking
+over the object tree.
+
+<P>
+Here are the methods of the <tt class="class">Message</tt> class:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-3' xml:id='l2h-3' class="class">Message</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+The constructor takes no arguments.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-4' xml:id='l2h-4' class="method">as_string</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>unixfrom</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the entire message flatten as a string.  When optional
+<var>unixfrom</var> is <code>True</code>, the envelope header is included in the
+returned string.  <var>unixfrom</var> defaults to <code>False</code>.
+
+<P>
+Note that this method is provided as a convenience and may not always format
+the message the way you want.  For example, by default it mangles lines that
+begin with <code>From </code>.  For more flexibility, instantiate a
+<tt class="class">Generator</tt> instance and use its
+<tt class="method">flatten()</tt> method directly.  For example:
+
+<P>
+<div class="verbatim"><pre>
+from cStringIO import StringIO
+from email.Generator import Generator
+fp = StringIO()
+g = Generator(fp, mangle_from_=False, maxheaderlen=60)
+g.flatten(msg)
+text = fp.getvalue()
+</pre></div>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-5' xml:id='l2h-5' class="method">__str__</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Equivalent to <tt class="method">as_string(unixfrom=True)</tt>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-6' xml:id='l2h-6' class="method">is_multipart</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return <code>True</code> if the message's payload is a list of
+sub-<tt class="class">Message</tt> objects, otherwise return <code>False</code>.  When
+<tt class="method">is_multipart()</tt> returns False, the payload should be a string
+object.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-7' xml:id='l2h-7' class="method">set_unixfrom</tt></b>(</nobr></td>
+  <td><var>unixfrom</var>)</td></tr></table></dt>
+<dd>
+Set the message's envelope header to <var>unixfrom</var>, which should be a string.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-8' xml:id='l2h-8' class="method">get_unixfrom</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the message's envelope header.  Defaults to <code>None</code> if the
+envelope header was never set.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-9' xml:id='l2h-9' class="method">attach</tt></b>(</nobr></td>
+  <td><var>payload</var>)</td></tr></table></dt>
+<dd>
+Add the given <var>payload</var> to the current payload, which must be
+<code>None</code> or a list of <tt class="class">Message</tt> objects before the call.
+After the call, the payload will always be a list of <tt class="class">Message</tt>
+objects.  If you want to set the payload to a scalar object (e.g. a
+string), use <tt class="method">set_payload()</tt> instead.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-10' xml:id='l2h-10' class="method">get_payload</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>i</var><big>[</big><var>, decode</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return a reference the current payload, which will be a list of
+<tt class="class">Message</tt> objects when <tt class="method">is_multipart()</tt> is <code>True</code>, or a
+string when <tt class="method">is_multipart()</tt> is <code>False</code>.  If the
+payload is a list and you mutate the list object, you modify the
+message's payload in place.
+
+<P>
+With optional argument <var>i</var>, <tt class="method">get_payload()</tt> will return the
+<var>i</var>-th element of the payload, counting from zero, if
+<tt class="method">is_multipart()</tt> is <code>True</code>.  An <tt class="exception">IndexError</tt>
+will be raised if <var>i</var> is less than 0 or greater than or equal to
+the number of items in the payload.  If the payload is a string
+(i.e. <tt class="method">is_multipart()</tt> is <code>False</code>) and <var>i</var> is given, a
+<tt class="exception">TypeError</tt> is raised.
+
+<P>
+Optional <var>decode</var> is a flag indicating whether the payload should be
+decoded or not, according to the <span class="mailheader">Content-Transfer-Encoding:</span> header.
+When <code>True</code> and the message is not a multipart, the payload will be
+decoded if this header's value is "<tt class="samp">quoted-printable</tt>" or
+"<tt class="samp">base64</tt>".  If some other encoding is used, or
+<span class="mailheader">Content-Transfer-Encoding:</span> header is
+missing, or if the payload has bogus base64 data, the payload is
+returned as-is (undecoded).  If the message is a multipart and the
+<var>decode</var> flag is <code>True</code>, then <code>None</code> is returned.  The
+default for <var>decode</var> is <code>False</code>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-11' xml:id='l2h-11' class="method">set_payload</tt></b>(</nobr></td>
+  <td><var>payload</var><big>[</big><var>, charset</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Set the entire message object's payload to <var>payload</var>.  It is the
+client's responsibility to ensure the payload invariants.  Optional
+<var>charset</var> sets the message's default character set; see
+<tt class="method">set_charset()</tt> for details.
+
+<P>
+
+<span class="versionnote">Changed in version 2.2.2:
+<var>charset</var> argument added.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-12' xml:id='l2h-12' class="method">set_charset</tt></b>(</nobr></td>
+  <td><var>charset</var>)</td></tr></table></dt>
+<dd>
+Set the character set of the payload to <var>charset</var>, which can
+either be a <tt class="class">Charset</tt> instance (see <tt class="module"><a href="module-email.Charset.html">email.Charset</a></tt>), a
+string naming a character set,
+or <code>None</code>.  If it is a string, it will be converted to a
+<tt class="class">Charset</tt> instance.  If <var>charset</var> is <code>None</code>, the
+<code>charset</code> parameter will be removed from the
+<span class="mailheader">Content-Type:</span> header. Anything else will generate a
+<tt class="exception">TypeError</tt>.
+
+<P>
+The message will be assumed to be of type <span class="mimetype">text/*</span> encoded with
+<code>charset.input_charset</code>.  It will be converted to
+<code>charset.output_charset</code>
+and encoded properly, if needed, when generating the plain text
+representation of the message.  MIME headers
+(<span class="mailheader">MIME-Version:</span>, <span class="mailheader">Content-Type:</span>,
+<span class="mailheader">Content-Transfer-Encoding:</span>) will be added as needed.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-13' xml:id='l2h-13' class="method">get_charset</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the <tt class="class">Charset</tt> instance associated with the message's payload.
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+The following methods implement a mapping-like interface for accessing
+the message's <a class="rfc" id='rfcref-3067' xml:id='rfcref-3067'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> headers.  Note that there are some
+semantic differences between these methods and a normal mapping
+(i.e. dictionary) interface.  For example, in a dictionary there are
+no duplicate keys, but here there may be duplicate message headers.  Also,
+in dictionaries there is no guaranteed order to the keys returned by
+<tt class="method">keys()</tt>, but in a <tt class="class">Message</tt> object, headers are always
+returned in the order they appeared in the original message, or were
+added to the message later.  Any header deleted and then re-added are
+always appended to the end of the header list.
+
+<P>
+These semantic differences are intentional and are biased toward
+maximal convenience.
+
+<P>
+Note that in all cases, any envelope header present in the message is
+not included in the mapping interface.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-14' xml:id='l2h-14' class="method">__len__</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the total number of headers, including duplicates.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-15' xml:id='l2h-15' class="method">__contains__</tt></b>(</nobr></td>
+  <td><var>name</var>)</td></tr></table></dt>
+<dd>
+Return true if the message object has a field named <var>name</var>.
+Matching is done case-insensitively and <var>name</var> should not include the
+trailing colon.  Used for the <code>in</code> operator,
+e.g.:
+
+<P>
+<div class="verbatim"><pre>
+if 'message-id' in myMessage:
+    print 'Message-ID:', myMessage['message-id']
+</pre></div>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-16' xml:id='l2h-16' class="method">__getitem__</tt></b>(</nobr></td>
+  <td><var>name</var>)</td></tr></table></dt>
+<dd>
+Return the value of the named header field.  <var>name</var> should not
+include the colon field separator.  If the header is missing,
+<code>None</code> is returned; a <tt class="exception">KeyError</tt> is never raised.
+
+<P>
+Note that if the named field appears more than once in the message's
+headers, exactly which of those field values will be returned is
+undefined.  Use the <tt class="method">get_all()</tt> method to get the values of all
+the extant named headers.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-17' xml:id='l2h-17' class="method">__setitem__</tt></b>(</nobr></td>
+  <td><var>name, val</var>)</td></tr></table></dt>
+<dd>
+Add a header to the message with field name <var>name</var> and value
+<var>val</var>.  The field is appended to the end of the message's existing
+fields.
+
+<P>
+Note that this does <em>not</em> overwrite or delete any existing header
+with the same name.  If you want to ensure that the new header is the
+only one present in the message with field name
+<var>name</var>, delete the field first, e.g.:
+
+<P>
+<div class="verbatim"><pre>
+del msg['subject']
+msg['subject'] = 'Python roolz!'
+</pre></div>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-18' xml:id='l2h-18' class="method">__delitem__</tt></b>(</nobr></td>
+  <td><var>name</var>)</td></tr></table></dt>
+<dd>
+Delete all occurrences of the field with name <var>name</var> from the
+message's headers.  No exception is raised if the named field isn't
+present in the headers.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-19' xml:id='l2h-19' class="method">has_key</tt></b>(</nobr></td>
+  <td><var>name</var>)</td></tr></table></dt>
+<dd>
+Return true if the message contains a header field named <var>name</var>,
+otherwise return false.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-20' xml:id='l2h-20' class="method">keys</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return a list of all the message's header field names.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-21' xml:id='l2h-21' class="method">values</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return a list of all the message's field values.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-22' xml:id='l2h-22' class="method">items</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return a list of 2-tuples containing all the message's field headers
+and values.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-23' xml:id='l2h-23' class="method">get</tt></b>(</nobr></td>
+  <td><var>name</var><big>[</big><var>, failobj</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the value of the named header field.  This is identical to
+<tt class="method">__getitem__()</tt> except that optional <var>failobj</var> is returned
+if the named header is missing (defaults to <code>None</code>).
+</dl>
+
+<P>
+Here are some additional useful methods:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-24' xml:id='l2h-24' class="method">get_all</tt></b>(</nobr></td>
+  <td><var>name</var><big>[</big><var>, failobj</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return a list of all the values for the field named <var>name</var>.
+If there are no such named headers in the message, <var>failobj</var> is
+returned (defaults to <code>None</code>).
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-25' xml:id='l2h-25' class="method">add_header</tt></b>(</nobr></td>
+  <td><var>_name, _value, **_params</var>)</td></tr></table></dt>
+<dd>
+Extended header setting.  This method is similar to
+<tt class="method">__setitem__()</tt> except that additional header parameters can be
+provided as keyword arguments.  <var>_name</var> is the header field to add
+and <var>_value</var> is the <em>primary</em> value for the header.
+
+<P>
+For each item in the keyword argument dictionary <var>_params</var>, the
+key is taken as the parameter name, with underscores converted to
+dashes (since dashes are illegal in Python identifiers).  Normally,
+the parameter will be added as <code>key="value"</code> unless the value is
+<code>None</code>, in which case only the key will be added.
+
+<P>
+Here's an example:
+
+<P>
+<div class="verbatim"><pre>
+msg.add_header('Content-Disposition', 'attachment', filename='bud.gif')
+</pre></div>
+
+<P>
+This will add a header that looks like
+
+<P>
+<div class="verbatim"><pre>
+Content-Disposition: attachment; filename="bud.gif"
+</pre></div>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-26' xml:id='l2h-26' class="method">replace_header</tt></b>(</nobr></td>
+  <td><var>_name, _value</var>)</td></tr></table></dt>
+<dd>
+Replace a header.  Replace the first header found in the message that
+matches <var>_name</var>, retaining header order and field name case.  If
+no matching header was found, a <tt class="exception">KeyError</tt> is raised.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-27' xml:id='l2h-27' class="method">get_content_type</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the message's content type.  The returned string is coerced to
+lower case of the form <span class="mimetype">maintype/subtype</span>.  If there was no
+<span class="mailheader">Content-Type:</span> header in the message the default type as
+given by <tt class="method">get_default_type()</tt> will be returned.  Since
+according to <a class="rfc" id='rfcref-3069' xml:id='rfcref-3069'
+href="http://www.faqs.org/rfcs/rfc2045.html">RFC 2045</a>, messages always have a default type,
+<tt class="method">get_content_type()</tt> will always return a value.
+
+<P>
+<a class="rfc" id='rfcref-3071' xml:id='rfcref-3071'
+href="http://www.faqs.org/rfcs/rfc2045.html">RFC 2045</a> defines a message's default type to be
+<span class="mimetype">text/plain</span> unless it appears inside a
+<span class="mimetype">multipart/digest</span> container, in which case it would be
+<span class="mimetype">message/rfc822</span>.  If the <span class="mailheader">Content-Type:</span> header
+has an invalid type specification, <a class="rfc" id='rfcref-3073' xml:id='rfcref-3073'
+href="http://www.faqs.org/rfcs/rfc2045.html">RFC 2045</a> mandates that the
+default type be <span class="mimetype">text/plain</span>.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-28' xml:id='l2h-28' class="method">get_content_maintype</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the message's main content type.  This is the
+<span class="mimetype">maintype</span> part of the string returned by
+<tt class="method">get_content_type()</tt>.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-29' xml:id='l2h-29' class="method">get_content_subtype</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the message's sub-content type.  This is the <span class="mimetype">subtype</span>
+part of the string returned by <tt class="method">get_content_type()</tt>.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-30' xml:id='l2h-30' class="method">get_default_type</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Return the default content type.  Most messages have a default content
+type of <span class="mimetype">text/plain</span>, except for messages that are subparts
+of <span class="mimetype">multipart/digest</span> containers.  Such subparts have a
+default content type of <span class="mimetype">message/rfc822</span>.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-31' xml:id='l2h-31' class="method">set_default_type</tt></b>(</nobr></td>
+  <td><var>ctype</var>)</td></tr></table></dt>
+<dd>
+Set the default content type.  <var>ctype</var> should either be
+<span class="mimetype">text/plain</span> or <span class="mimetype">message/rfc822</span>, although this is
+not enforced.  The default content type is not stored in the
+<span class="mailheader">Content-Type:</span> header.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-32' xml:id='l2h-32' class="method">get_params</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>failobj</var><big>[</big><var>,
+    header</var><big>[</big><var>, unquote</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the message's <span class="mailheader">Content-Type:</span> parameters, as a list.  The
+elements of the returned list are 2-tuples of key/value pairs, as
+split on the "<tt class="character">=</tt>" sign.  The left hand side of the
+"<tt class="character">=</tt>" is the key, while the right hand side is the value.  If
+there is no "<tt class="character">=</tt>" sign in the parameter the value is the empty
+string, otherwise the value is as described in <tt class="method">get_param()</tt> and is
+unquoted if optional <var>unquote</var> is <code>True</code> (the default).
+
+<P>
+Optional <var>failobj</var> is the object to return if there is no
+<span class="mailheader">Content-Type:</span> header.  Optional <var>header</var> is the header to
+search instead of <span class="mailheader">Content-Type:</span>.
+
+<P>
+
+<span class="versionnote">Changed in version 2.2.2:
+<var>unquote</var> argument added.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-33' xml:id='l2h-33' class="method">get_param</tt></b>(</nobr></td>
+  <td><var>param</var><big>[</big><var>,
+    failobj</var><big>[</big><var>, header</var><big>[</big><var>, unquote</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the value of the <span class="mailheader">Content-Type:</span> header's parameter
+<var>param</var> as a string.  If the message has no <span class="mailheader">Content-Type:</span>
+header or if there is no such parameter, then <var>failobj</var> is
+returned (defaults to <code>None</code>).
+
+<P>
+Optional <var>header</var> if given, specifies the message header to use
+instead of <span class="mailheader">Content-Type:</span>.
+
+<P>
+Parameter keys are always compared case insensitively.  The return
+value can either be a string, or a 3-tuple if the parameter was
+<a class="rfc" id='rfcref-3075' xml:id='rfcref-3075'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a> encoded.  When it's a 3-tuple, the elements of the value are of
+the form <code>(CHARSET, LANGUAGE, VALUE)</code>.  Note that both <code>CHARSET</code> and
+<code>LANGUAGE</code> can be <code>None</code>, in which case you should consider
+<code>VALUE</code> to be encoded in the <code>us-ascii</code> charset.  You can
+usually ignore <code>LANGUAGE</code>.
+
+<P>
+If your application doesn't care whether the parameter was encoded as in
+<a class="rfc" id='rfcref-3077' xml:id='rfcref-3077'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a>, you can collapse the parameter value by calling
+<tt class="function">email.Utils.collapse_rfc2231_value()</tt>, passing in the return value
+from <tt class="method">get_param()</tt>.  This will return a suitably decoded Unicode string
+whn the value is a tuple, or the original string unquoted if it isn't.  For
+example:
+
+<P>
+<div class="verbatim"><pre>
+rawparam = msg.get_param('foo')
+param = email.Utils.collapse_rfc2231_value(rawparam)
+</pre></div>
+
+<P>
+In any case, the parameter value (either the returned string, or the
+<code>VALUE</code> item in the 3-tuple) is always unquoted, unless
+<var>unquote</var> is set to <code>False</code>.
+
+<P>
+
+<span class="versionnote">Changed in version 2.2.2:
+<var>unquote</var> argument added, and 3-tuple return value
+possible.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-34' xml:id='l2h-34' class="method">set_param</tt></b>(</nobr></td>
+  <td><var>param, value</var><big>[</big><var>,
+    header</var><big>[</big><var>, requote</var><big>[</big><var>, charset</var><big>[</big><var>, language</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+
+<P>
+Set a parameter in the <span class="mailheader">Content-Type:</span> header.  If the
+parameter already exists in the header, its value will be replaced
+with <var>value</var>.  If the <span class="mailheader">Content-Type:</span> header as not yet
+been defined for this message, it will be set to <span class="mimetype">text/plain</span>
+and the new parameter value will be appended as per <a class="rfc" id='rfcref-3079' xml:id='rfcref-3079'
+href="http://www.faqs.org/rfcs/rfc2045.html">RFC 2045</a>.
+
+<P>
+Optional <var>header</var> specifies an alternative header to
+<span class="mailheader">Content-Type:</span>, and all parameters will be quoted as
+necessary unless optional <var>requote</var> is <code>False</code> (the default
+is <code>True</code>).
+
+<P>
+If optional <var>charset</var> is specified, the parameter will be encoded
+according to <a class="rfc" id='rfcref-3081' xml:id='rfcref-3081'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a>. Optional <var>language</var> specifies the RFC
+2231 language, defaulting to the empty string.  Both <var>charset</var> and
+<var>language</var> should be strings.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-35' xml:id='l2h-35' class="method">del_param</tt></b>(</nobr></td>
+  <td><var>param</var><big>[</big><var>, header</var><big>[</big><var>,
+    requote</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Remove the given parameter completely from the
+<span class="mailheader">Content-Type:</span> header.  The header will be re-written in
+place without the parameter or its value.  All values will be quoted
+as necessary unless <var>requote</var> is <code>False</code> (the default is
+<code>True</code>).  Optional <var>header</var> specifies an alternative to
+<span class="mailheader">Content-Type:</span>.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-36' xml:id='l2h-36' class="method">set_type</tt></b>(</nobr></td>
+  <td><var>type</var><big>[</big><var>, header</var><big>]</big><var></var><big>[</big><var>,
+    requote</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Set the main type and subtype for the <span class="mailheader">Content-Type:</span>
+header. <var>type</var> must be a string in the form
+<span class="mimetype">maintype/subtype</span>, otherwise a <tt class="exception">ValueError</tt> is
+raised.
+
+<P>
+This method replaces the <span class="mailheader">Content-Type:</span> header, keeping all
+the parameters in place.  If <var>requote</var> is <code>False</code>, this
+leaves the existing header's quoting as is, otherwise the parameters
+will be quoted (the default).
+
+<P>
+An alternative header can be specified in the <var>header</var> argument.
+When the <span class="mailheader">Content-Type:</span> header is set a
+<span class="mailheader">MIME-Version:</span> header is also added.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-37' xml:id='l2h-37' class="method">get_filename</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>failobj</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the value of the <code>filename</code> parameter of the
+<span class="mailheader">Content-Disposition:</span> header of the message.  If the header does
+not have a <code>filename</code> parameter, this method falls back to looking for
+the <code>name</code> parameter.  If neither is found, or the header is missing,
+then <var>failobj</var> is returned.  The returned string will always be unquoted
+as per <tt class="method">Utils.unquote()</tt>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-38' xml:id='l2h-38' class="method">get_boundary</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>failobj</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the value of the <code>boundary</code> parameter of the
+<span class="mailheader">Content-Type:</span> header of the message, or <var>failobj</var> if either
+the header is missing, or has no <code>boundary</code> parameter.  The
+returned string will always be unquoted as per
+<tt class="method">Utils.unquote()</tt>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-39' xml:id='l2h-39' class="method">set_boundary</tt></b>(</nobr></td>
+  <td><var>boundary</var>)</td></tr></table></dt>
+<dd>
+Set the <code>boundary</code> parameter of the <span class="mailheader">Content-Type:</span>
+header to <var>boundary</var>.  <tt class="method">set_boundary()</tt> will always quote
+<var>boundary</var> if necessary.  A <tt class="exception">HeaderParseError</tt> is raised
+if the message object has no <span class="mailheader">Content-Type:</span> header.
+
+<P>
+Note that using this method is subtly different than deleting the old
+<span class="mailheader">Content-Type:</span> header and adding a new one with the new boundary
+via <tt class="method">add_header()</tt>, because <tt class="method">set_boundary()</tt> preserves the
+order of the <span class="mailheader">Content-Type:</span> header in the list of headers.
+However, it does <em>not</em> preserve any continuation lines which may
+have been present in the original <span class="mailheader">Content-Type:</span> header.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-40' xml:id='l2h-40' class="method">get_content_charset</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>failobj</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the <code>charset</code> parameter of the <span class="mailheader">Content-Type:</span>
+header, coerced to lower case.  If there is no
+<span class="mailheader">Content-Type:</span> header, or if that header has no
+<code>charset</code> parameter, <var>failobj</var> is returned.
+
+<P>
+Note that this method differs from <tt class="method">get_charset()</tt> which
+returns the <tt class="class">Charset</tt> instance for the default encoding of the
+message body.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-41' xml:id='l2h-41' class="method">get_charsets</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>failobj</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return a list containing the character set names in the message.  If
+the message is a <span class="mimetype">multipart</span>, then the list will contain one
+element for each subpart in the payload, otherwise, it will be a list
+of length 1.
+
+<P>
+Each item in the list will be a string which is the value of the
+<code>charset</code> parameter in the <span class="mailheader">Content-Type:</span> header for the
+represented subpart.  However, if the subpart has no
+<span class="mailheader">Content-Type:</span> header, no <code>charset</code> parameter, or is not of
+the <span class="mimetype">text</span> main MIME type, then that item in the returned list
+will be <var>failobj</var>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-42' xml:id='l2h-42' class="method">walk</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+The <tt class="method">walk()</tt> method is an all-purpose generator which can be
+used to iterate over all the parts and subparts of a message object
+tree, in depth-first traversal order.  You will typically use
+<tt class="method">walk()</tt> as the iterator in a <code>for</code> loop; each
+iteration returns the next subpart.
+
+<P>
+Here's an example that prints the MIME type of every part of a
+multipart message structure:
+
+<P>
+<div class="verbatim"><pre>
+&gt;&gt;&gt; for part in msg.walk():
+...     print part.get_content_type()
+multipart/report
+text/plain
+message/delivery-status
+text/plain
+text/plain
+message/rfc822
+</pre></div>
+</dl>
+
+<P>
+<tt class="class">Message</tt> objects can also optionally contain two instance
+attributes, which can be used when generating the plain text of a MIME
+message.
+
+<P>
+<dl><dt><b><tt id='l2h-43' xml:id='l2h-43'>preamble</tt></b></dt>
+<dd>
+The format of a MIME document allows for some text between the blank
+line following the headers, and the first multipart boundary string.
+Normally, this text is never visible in a MIME-aware mail reader
+because it falls outside the standard MIME armor.  However, when
+viewing the raw text of the message, or when viewing the message in a
+non-MIME aware reader, this text can become visible.
+
+<P>
+The <var>preamble</var> attribute contains this leading extra-armor text
+for MIME documents.  When the <tt class="class">Parser</tt> discovers some text after
+the headers but before the first boundary string, it assigns this text
+to the message's <var>preamble</var> attribute.  When the <tt class="class">Generator</tt>
+is writing out the plain text representation of a MIME message, and it
+finds the message has a <var>preamble</var> attribute, it will write this
+text in the area between the headers and the first boundary.  See
+<tt class="module"><a href="module-email.Parser.html">email.Parser</a></tt> and <tt class="module"><a href="module-email.Generator.html">email.Generator</a></tt> for details.
+
+<P>
+Note that if the message object has no preamble, the
+<var>preamble</var> attribute will be <code>None</code>.
+</dd></dl>
+
+<P>
+<dl><dt><b><tt id='l2h-44' xml:id='l2h-44'>epilogue</tt></b></dt>
+<dd>
+The <var>epilogue</var> attribute acts the same way as the <var>preamble</var>
+attribute, except that it contains text that appears between the last
+boundary and the end of the message.
+
+<P>
+One note: when generating the flat text for a <span class="mimetype">multipart</span>
+message that has no <var>epilogue</var> (using the standard
+<tt class="class">Generator</tt> class), no newline is added after the closing
+boundary line.  If the message object has an <var>epilogue</var> and its
+value does not start with a newline, a newline is printed after the
+closing boundary.  This seems a little clumsy, but it makes the most
+practical sense.  The upshot is that if you want to ensure that a
+newline get printed after your closing <span class="mimetype">multipart</span> boundary,
+set the <var>epilogue</var> to the empty string.
+</dd></dl>
+
+<P>
+<dl><dt><b><tt id='l2h-45' xml:id='l2h-45'>defects</tt></b></dt>
+<dd>
+The <var>defects</var> attribute contains a list of all the problems found when
+parsing this message.  See <tt class="module"><a href="module-email.Errors.html">email.Errors</a></tt> for a detailed description
+of the possible parsing defects.
+
+<P>
+
+<span class="versionnote">New in version 2.4.</span>
+
+</dd></dl>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="node4.html">2.1.1 Deprecated methods</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2 email  "
+  href="module-email.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.1.1 Deprecated methods"
+  href="node4.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.html">2 email  </A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node4.html">2.1.1 Deprecated methods</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.Parser.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.Parser.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-email.Generator.html" />
+<link rel="prev" href="module-email.Message.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="node6.html" />
+<meta name='aesop' content='information' />
+<title>2.2 Parsing email messages</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.1.1 Deprecated methods"
+  href="node4.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.2.1 FeedParser API"
+  href="node6.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node4.html">2.1.1 Deprecated methods</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node6.html">2.2.1 FeedParser API</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000220000000000000000">
+2.2 Parsing email messages</A>
+</H2>
+<A NAME="module-email.Parser"></A>
+
+<P>
+Message object structures can be created in one of two ways: they can be
+created from whole cloth by instantiating <tt class="class">Message</tt> objects and
+stringing them together via <tt class="method">attach()</tt> and
+<tt class="method">set_payload()</tt> calls, or they can be created by parsing a flat text
+representation of the email message.
+
+<P>
+The <tt class="module">email</tt> package provides a standard parser that understands
+most email document structures, including MIME documents.  You can
+pass the parser a string or a file object, and the parser will return
+to you the root <tt class="class">Message</tt> instance of the object structure.  For
+simple, non-MIME messages the payload of this root object will likely
+be a string containing the text of the message.  For MIME
+messages, the root object will return <code>True</code> from its
+<tt class="method">is_multipart()</tt> method, and the subparts can be accessed via
+the <tt class="method">get_payload()</tt> and <tt class="method">walk()</tt> methods.
+
+<P>
+There are actually two parser interfaces available for use, the classic
+<tt class="class">Parser</tt> API and the incremental <tt class="class">FeedParser</tt> API.  The classic
+<tt class="class">Parser</tt> API is fine if you have the entire text of the message in
+memory as a string, or if the entire message lives in a file on the file
+system.  <tt class="class">FeedParser</tt> is more appropriate for when you're reading the
+message from a stream which might block waiting for more input (e.g. reading
+an email message from a socket).  The <tt class="class">FeedParser</tt> can consume and parse
+the message incrementally, and only returns the root object when you close the
+parser<A NAME="tex2html17"
+  HREF="#foot1028"><SUP>1</SUP></A>.
+
+<P>
+Note that the parser can be extended in limited ways, and of course
+you can implement your own parser completely from scratch.  There is
+no magical connection between the <tt class="module">email</tt> package's bundled
+parser and the <tt class="class">Message</tt> class, so your custom parser can create
+message object trees any way it finds necessary.
+
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot1028">...
+parser</A><A
+ href="module-email.Parser.html#tex2html17"><SUP>1</SUP></A></DT>
+<DD>As of email package version 3.0, introduced in
+Python 2.4, the classic <tt class="class">Parser</tt> was re-implemented in terms of the
+<tt class="class">FeedParser</tt>, so the semantics and results are identical between the two
+parsers.
+
+</DD>
+</DL>
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="node6.html">2.2.1 FeedParser API</a>
+<LI><A href="node7.html">2.2.2 Parser class API</a>
+<LI><A href="node8.html">2.2.3 Additional notes</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.1.1 Deprecated methods"
+  href="node4.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.2.1 FeedParser API"
+  href="node6.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node4.html">2.1.1 Deprecated methods</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node6.html">2.2.1 FeedParser API</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.Utils.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.Utils.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,341 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-email.Iterators.html" />
+<link rel="prev" href="module-email.Errors.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="module-email.Iterators.html" />
+<meta name='aesop' content='information' />
+<title>2.9 Miscellaneous utilities</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.8 Exception and Defect"
+  href="module-email.Errors.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.10 Iterators"
+  href="module-email.Iterators.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Errors.html">2.8 Exception and Defect</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Iterators.html">2.10 Iterators</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000290000000000000000">
+2.9 Miscellaneous utilities</A>
+</H2>
+<A NAME="module-email.Utils"></A>
+
+<P>
+There are several useful utilities provided in the <tt class="module">email.Utils</tt>
+module:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-116' xml:id='l2h-116' class="function">quote</tt></b>(</nobr></td>
+  <td><var>str</var>)</td></tr></table></dt>
+<dd>
+Return a new string with backslashes in <var>str</var> replaced by two
+backslashes, and double quotes replaced by backslash-double quote.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-117' xml:id='l2h-117' class="function">unquote</tt></b>(</nobr></td>
+  <td><var>str</var>)</td></tr></table></dt>
+<dd>
+Return a new string which is an <em>unquoted</em> version of <var>str</var>.
+If <var>str</var> ends and begins with double quotes, they are stripped
+off.  Likewise if <var>str</var> ends and begins with angle brackets, they
+are stripped off.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-118' xml:id='l2h-118' class="function">parseaddr</tt></b>(</nobr></td>
+  <td><var>address</var>)</td></tr></table></dt>
+<dd>
+Parse address - which should be the value of some address-containing
+field such as <span class="mailheader">To:</span> or <span class="mailheader">Cc:</span> - into its constituent
+<em>realname</em> and <em>email address</em> parts.  Returns a tuple of that
+information, unless the parse fails, in which case a 2-tuple of
+<code>('', '')</code> is returned.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-119' xml:id='l2h-119' class="function">formataddr</tt></b>(</nobr></td>
+  <td><var>pair</var>)</td></tr></table></dt>
+<dd>
+The inverse of <tt class="method">parseaddr()</tt>, this takes a 2-tuple of the form
+<code>(realname, email_address)</code> and returns the string value suitable
+for a <span class="mailheader">To:</span> or <span class="mailheader">Cc:</span> header.  If the first element of
+<var>pair</var> is false, then the second element is returned unmodified.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-120' xml:id='l2h-120' class="function">getaddresses</tt></b>(</nobr></td>
+  <td><var>fieldvalues</var>)</td></tr></table></dt>
+<dd>
+This method returns a list of 2-tuples of the form returned by
+<code>parseaddr()</code>.  <var>fieldvalues</var> is a sequence of header field
+values as might be returned by <tt class="method">Message.get_all()</tt>.  Here's a
+simple example that gets all the recipients of a message:
+
+<P>
+<div class="verbatim"><pre>
+from email.Utils import getaddresses
+
+tos = msg.get_all('to', [])
+ccs = msg.get_all('cc', [])
+resent_tos = msg.get_all('resent-to', [])
+resent_ccs = msg.get_all('resent-cc', [])
+all_recipients = getaddresses(tos + ccs + resent_tos + resent_ccs)
+</pre></div>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-121' xml:id='l2h-121' class="function">parsedate</tt></b>(</nobr></td>
+  <td><var>date</var>)</td></tr></table></dt>
+<dd>
+Attempts to parse a date according to the rules in <a class="rfc" id='rfcref-3232' xml:id='rfcref-3232'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>.
+however, some mailers don't follow that format as specified, so
+<tt class="function">parsedate()</tt> tries to guess correctly in such cases. 
+<var>date</var> is a string containing an <a class="rfc" id='rfcref-3234' xml:id='rfcref-3234'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a> date, such as 
+<code>"Mon, 20 Nov 1995 19:12:08 -0500"</code>.  If it succeeds in parsing
+the date, <tt class="function">parsedate()</tt> returns a 9-tuple that can be passed
+directly to <tt class="function">time.mktime()</tt>; otherwise <code>None</code> will be
+returned.  Note that fields 6, 7, and 8 of the result tuple are not
+usable.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-122' xml:id='l2h-122' class="function">parsedate_tz</tt></b>(</nobr></td>
+  <td><var>date</var>)</td></tr></table></dt>
+<dd>
+Performs the same function as <tt class="function">parsedate()</tt>, but returns
+either <code>None</code> or a 10-tuple; the first 9 elements make up a tuple
+that can be passed directly to <tt class="function">time.mktime()</tt>, and the tenth
+is the offset of the date's timezone from UTC (which is the official
+term for Greenwich Mean Time)<A NAME="tex2html40"
+  HREF="#foot2383"><SUP>3</SUP></A>.  If the input
+string has no timezone, the last element of the tuple returned is
+<code>None</code>.  Note that fields 6, 7, and 8 of the result tuple are not
+usable.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-123' xml:id='l2h-123' class="function">mktime_tz</tt></b>(</nobr></td>
+  <td><var>tuple</var>)</td></tr></table></dt>
+<dd>
+Turn a 10-tuple as returned by <tt class="function">parsedate_tz()</tt> into a UTC
+timestamp.  It the timezone item in the tuple is <code>None</code>, assume
+local time.  Minor deficiency: <tt class="function">mktime_tz()</tt> interprets the
+first 8 elements of <var>tuple</var> as a local time and then compensates
+for the timezone difference.  This may yield a slight error around
+changes in daylight savings time, though not worth worrying about for
+common use.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-124' xml:id='l2h-124' class="function">formatdate</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>timeval</var><big>[</big><var>, localtime</var><big>]</big><var></var><big>[</big><var>, usegmt</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Returns a date string as per <a class="rfc" id='rfcref-3236' xml:id='rfcref-3236'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>, e.g.:
+
+<P>
+<div class="verbatim"><pre>
+Fri, 09 Nov 2001 01:08:47 -0000
+</pre></div>
+
+<P>
+Optional <var>timeval</var> if given is a floating point time value as
+accepted by <tt class="function">time.gmtime()</tt> and <tt class="function">time.localtime()</tt>,
+otherwise the current time is used.
+
+<P>
+Optional <var>localtime</var> is a flag that when <code>True</code>, interprets
+<var>timeval</var>, and returns a date relative to the local timezone
+instead of UTC, properly taking daylight savings time into account.
+The default is <code>False</code> meaning UTC is used.
+
+<P>
+Optional <var>usegmt</var> is a flag that when <code>True</code>, outputs a 
+date string with the timezone as an ascii string <code>GMT</code>, rather
+than a numeric <code>-0000</code>. This is needed for some protocols (such
+as HTTP). This only applies when <var>localtime</var> is <code>False</code>.
+
+<span class="versionnote">New in version 2.4.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-125' xml:id='l2h-125' class="function">make_msgid</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>idstring</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Returns a string suitable for an <a class="rfc" id='rfcref-3238' xml:id='rfcref-3238'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>-compliant
+<span class="mailheader">Message-ID:</span> header.  Optional <var>idstring</var> if given, is
+a string used to strengthen the uniqueness of the message id.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-126' xml:id='l2h-126' class="function">decode_rfc2231</tt></b>(</nobr></td>
+  <td><var>s</var>)</td></tr></table></dt>
+<dd>
+Decode the string <var>s</var> according to <a class="rfc" id='rfcref-3240' xml:id='rfcref-3240'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-127' xml:id='l2h-127' class="function">encode_rfc2231</tt></b>(</nobr></td>
+  <td><var>s</var><big>[</big><var>, charset</var><big>[</big><var>, language</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Encode the string <var>s</var> according to <a class="rfc" id='rfcref-3242' xml:id='rfcref-3242'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a>.  Optional
+<var>charset</var> and <var>language</var>, if given is the character set name
+and language name to use.  If neither is given, <var>s</var> is returned
+as-is.  If <var>charset</var> is given but <var>language</var> is not, the
+string is encoded using the empty string for <var>language</var>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-128' xml:id='l2h-128' class="function">collapse_rfc2231_value</tt></b>(</nobr></td>
+  <td><var>value</var><big>[</big><var>, errors</var><big>[</big><var>,
+    fallback_charset</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+When a header parameter is encoded in <a class="rfc" id='rfcref-3244' xml:id='rfcref-3244'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a> format,
+<tt class="method">Message.get_param()</tt> may return a 3-tuple containing the character
+set, language, and value.  <tt class="function">collapse_rfc2231_value()</tt> turns this into
+a unicode string.  Optional <var>errors</var> is passed to the <var>errors</var>
+argument of the built-in <tt class="function">unicode()</tt> function; it defaults to
+<code>replace</code>.  Optional <var>fallback_charset</var> specifies the character set
+to use if the one in the <a class="rfc" id='rfcref-3246' xml:id='rfcref-3246'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a> header is not known by Python; it defaults
+to <code>us-ascii</code>.
+
+<P>
+For convenience, if the <var>value</var> passed to
+<tt class="function">collapse_rfc2231_value()</tt> is not a tuple, it should be a string and
+it is returned unquoted.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-129' xml:id='l2h-129' class="function">decode_params</tt></b>(</nobr></td>
+  <td><var>params</var>)</td></tr></table></dt>
+<dd>
+Decode parameters list according to <a class="rfc" id='rfcref-3248' xml:id='rfcref-3248'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a>.  <var>params</var> is a
+sequence of 2-tuples containing elements of the form
+<code>(content-type, string-value)</code>.
+</dl>
+
+<P>
+
+<span class="versionnote">Changed in version 2.4:
+The <tt class="function">dump_address_pair()</tt> function has been removed;
+use <tt class="function">formataddr()</tt> instead.</span>
+
+<P>
+
+<span class="versionnote">Changed in version 2.4:
+The <tt class="function">decode()</tt> function has been removed; use the
+<tt class="method">Header.decode_header()</tt> method instead.</span>
+
+<P>
+
+<span class="versionnote">Changed in version 2.4:
+The <tt class="function">encode()</tt> function has been removed; use the
+<tt class="method">Header.encode()</tt> method instead.</span>
+
+
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot2383">... Time)</A><A
+ href="module-email.Utils.html#tex2html40"><SUP>3</SUP></A></DT>
+<DD>Note that the sign of the timezone
+offset is the opposite of the sign of the <code>time.timezone</code>
+variable for the same timezone; the latter variable follows the
+POSIX standard while this module follows <a class="rfc" id='rfcref-3223' xml:id='rfcref-3223'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>.
+
+</DD>
+</DL>
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.8 Exception and Defect"
+  href="module-email.Errors.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.10 Iterators"
+  href="module-email.Iterators.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Errors.html">2.8 Exception and Defect</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Iterators.html">2.10 Iterators</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/module-email.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/module-email.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="about.html" />
+<link rel="prev" href="node1.html" />
+<link rel="parent" href="mimelib.html" />
+<link rel="next" href="module-email.Message.html" />
+<meta name='aesop' content='information' />
+<title>2 email -- An email and MIME handling package</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="1 Introduction"
+  href="node1.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="email Package Reference"
+  href="mimelib.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.1 Representing an email"
+  href="module-email.Message.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node1.html">1 Introduction</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="mimelib.html">email Package Reference</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Message.html">2.1 Representing an email</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION000200000000000000000">
+2 <tt class="module">email</tt> --
+	 An email and MIME handling package</A>
+</H1>
+
+<P>
+<A NAME="module-email"></A>
+
+<P>
+
+<span class="versionnote">New in version 2.2.</span>
+
+<P>
+The <tt class="module">email</tt> package is a library for managing email messages,
+including MIME and other <a class="rfc" id='rfcref-3006' xml:id='rfcref-3006'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>-based message documents.  It
+subsumes most of the functionality in several older standard modules
+such as <tt class="module"><a href="module-rfc822.html">rfc822</a></tt>, <tt class="module"><a href="module-mimetools.html">mimetools</a></tt>,
+<tt class="module"><a href="module-multifile.html">multifile</a></tt>, and other non-standard packages such as
+<tt class="module">mimecntl</tt>.  It is specifically <em>not</em> designed to do any
+sending of email messages to SMTP (<a class="rfc" id='rfcref-3008' xml:id='rfcref-3008'
+href="http://www.faqs.org/rfcs/rfc2821.html">RFC 2821</a>) servers; that is the
+function of the <tt class="module"><a href="module-smtplib.html">smtplib</a></tt> module.  The <tt class="module">email</tt>
+package attempts to be as RFC-compliant as possible, supporting in
+addition to <a class="rfc" id='rfcref-3010' xml:id='rfcref-3010'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>, such MIME-related RFCs as
+<a class="rfc" id='rfcref-3012' xml:id='rfcref-3012'
+href="http://www.faqs.org/rfcs/rfc2045.html">RFC 2045</a>, <a class="rfc" id='rfcref-3014' xml:id='rfcref-3014'
+href="http://www.faqs.org/rfcs/rfc2046.html">RFC 2046</a>, <a class="rfc" id='rfcref-3016' xml:id='rfcref-3016'
+href="http://www.faqs.org/rfcs/rfc2047.html">RFC 2047</a>, and <a class="rfc" id='rfcref-3018' xml:id='rfcref-3018'
+href="http://www.faqs.org/rfcs/rfc2231.html">RFC 2231</a>.
+
+<P>
+The primary distinguishing feature of the <tt class="module">email</tt> package is
+that it splits the parsing and generating of email messages from the
+internal <em>object model</em> representation of email.  Applications
+using the <tt class="module">email</tt> package deal primarily with objects; you can
+add sub-objects to messages, remove sub-objects from messages,
+completely re-arrange the contents, etc.  There is a separate parser
+and a separate generator which handles the transformation from flat
+text to the object model, and then back to flat text again.  There
+are also handy subclasses for some common MIME object types, and a few
+miscellaneous utilities that help with such common tasks as extracting
+and parsing message field values, creating RFC-compliant dates, etc.
+
+<P>
+The following sections describe the functionality of the
+<tt class="module">email</tt> package.  The ordering follows a progression that
+should be common in applications: an email message is read as flat
+text from a file or other source, the text is parsed to produce the
+object structure of the email message, this structure is manipulated,
+and finally rendered back into flat text.
+
+<P>
+It is perfectly feasible to create the object structure out of whole
+cloth -- i.e. completely from scratch.  From there, a similar
+progression can be taken as above.
+
+<P>
+Also included are detailed specifications of all the classes and
+modules that the <tt class="module">email</tt> package provides, the exception
+classes you might encounter while using the <tt class="module">email</tt> package,
+some auxiliary utilities, and a few examples.  For users of the older
+<tt class="module">mimelib</tt> package, or previous versions of the <tt class="module">email</tt>
+package, a section on differences and porting is provided.
+
+<P>
+<div class="seealso">
+  <p class="heading">See Also:</p>
+
+    <dl compact="compact" class="seemodule">
+    <dt>Module <b><tt class="module"><a href="module-smtplib.html">smtplib</a></tt>:</b>
+    <dd>SMTP protocol client.
+  </dl>
+</div>
+
+<P>
+
+<p><br /></p><hr class='online-navigation' />
+<div class='online-navigation'>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></a>
+
+<UL CLASS="ChildLinks">
+<LI><A href="module-email.Message.html">2.1 Representing an email message</a>
+<UL>
+<LI><A href="node4.html">2.1.1 Deprecated methods</a>
+</ul>
+<LI><A href="module-email.Parser.html">2.2 Parsing email messages</a>
+<UL>
+<LI><A href="node6.html">2.2.1 FeedParser API</a>
+<LI><A href="node7.html">2.2.2 Parser class API</a>
+<LI><A href="node8.html">2.2.3 Additional notes</a>
+</ul>
+<LI><A href="module-email.Generator.html">2.3 Generating MIME documents</a>
+<UL>
+<LI><A href="node10.html">2.3.1 Deprecated methods</a>
+</ul>
+<LI><A href="node11.html">2.4 Creating email and MIME objects from scratch</a>
+<LI><A href="module-email.Header.html">2.5 Internationalized headers</a>
+<LI><A href="module-email.Charset.html">2.6 Representing character sets</a>
+<LI><A href="module-email.Encoders.html">2.7 Encoders</a>
+<LI><A href="module-email.Errors.html">2.8 Exception and Defect classes</a>
+<LI><A href="module-email.Utils.html">2.9 Miscellaneous utilities</a>
+<LI><A href="module-email.Iterators.html">2.10 Iterators</a>
+<LI><A href="node18.html">2.11 Package History</a>
+<LI><A href="node19.html">2.12 Differences from <tt class="module">mimelib</tt></a>
+<LI><A href="node20.html">2.13 Examples</a>
+</ul>
+<!--End of Table of Child-Links-->
+</div>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="1 Introduction"
+  href="node1.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="email Package Reference"
+  href="mimelib.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.1 Representing an email"
+  href="module-email.Message.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node1.html">1 Introduction</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="mimelib.html">email Package Reference</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Message.html">2.1 Representing an email</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/modules.png
==============================================================================
Binary file. No diff available.

Added: sandbox/trunk/emailpkg/3_0/docs/next.png
==============================================================================
Binary file. No diff available.

Added: sandbox/trunk/emailpkg/3_0/docs/node1.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node1.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-email.html" />
+<link rel="prev" href="mimelib.html" />
+<link rel="parent" href="mimelib.html" />
+<link rel="next" href="module-email.html" />
+<meta name='aesop' content='information' />
+<title>1 Introduction</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="email Package Reference"
+  href="mimelib.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="email Package Reference"
+  href="mimelib.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2 email  "
+  href="module-email.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="mimelib.html">email Package Reference</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="mimelib.html">email Package Reference</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.html">2 email  </A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION000100000000000000000">
+1 Introduction</A>
+</H1>
+The <tt class="module">email</tt> package provides classes and utilities to create,
+parse, generate, and modify email messages, conforming to all the
+relevant email and MIME related RFCs.
+
+<P>
+This document describes version 3.0 of the <tt class="module">email</tt> package, which is
+distributed with Python 2.4 and is available as a standalone distutils-based
+package for use with Python 2.3.  <tt class="module">email</tt> 3.0 is not compatible with
+Python versions earlier than 2.3.  For more information about the
+<tt class="module">email</tt> package, including download links and mailing lists, see
+<a class="ulink" href="http://www.python.org/sigs/email-sig"
+  >Python's email SIG</a>.
+
+<P>
+The documentation that follows was written for the Python project, so
+if you're reading this as part of the standalone <tt class="module">email</tt>
+package documentation, there are a few notes to be aware of:
+
+<P>
+
+<UL>
+<LI>Deprecation and ``version added'' notes are relative to the
+      Python version a feature was added or deprecated.
+
+<P>
+</LI>
+<LI>If you're reading this documentation as part of the
+      standalone <tt class="module">email</tt> package, some of the internal links to
+      other sections of the Python standard library may not resolve.
+
+<P>
+</LI>
+</UL>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="email Package Reference"
+  href="mimelib.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="email Package Reference"
+  href="mimelib.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2 email  "
+  href="module-email.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="mimelib.html">email Package Reference</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="mimelib.html">email Package Reference</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.html">2 email  </A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/node10.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node10.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="module-email.Generator.html" />
+<link rel="parent" href="module-email.Generator.html" />
+<link rel="next" href="node11.html" />
+<meta name='aesop' content='information' />
+<title>2.3.1 Deprecated methods</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.3 Generating MIME documents"
+  href="module-email.Generator.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.3 Generating MIME documents"
+  href="module-email.Generator.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.4 Creating email and"
+  href="node11.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Generator.html">2.3 Generating MIME documents</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Generator.html">2.3 Generating MIME documents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node11.html">2.4 Creating email and</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000231000000000000000">
+2.3.1 Deprecated methods</A>
+</H3>
+
+<P>
+The following methods are deprecated in <tt class="module">email</tt> version 2.
+They are documented here for completeness.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-64' xml:id='l2h-64' class="method">__call__</tt></b>(</nobr></td>
+  <td><var>msg</var><big>[</big><var>, unixfrom</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+This method is identical to the <tt class="method">flatten()</tt> method.
+
+<P>
+<div class="versionnote"><b>Deprecated since release 2.2.2.</b>
+Use the <tt class="method">flatten()</tt> method instead.</div><p></p>
+</dl>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.3 Generating MIME documents"
+  href="module-email.Generator.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.3 Generating MIME documents"
+  href="module-email.Generator.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.4 Creating email and"
+  href="node11.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Generator.html">2.3 Generating MIME documents</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Generator.html">2.3 Generating MIME documents</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node11.html">2.4 Creating email and</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/node11.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node11.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,305 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="module-email.Header.html" />
+<link rel="prev" href="module-email.Generator.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="module-email.Header.html" />
+<meta name='aesop' content='information' />
+<title>2.4 Creating email and MIME objects from scratch</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.3.1 Deprecated methods"
+  href="node10.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.5 Internationalized headers"
+  href="module-email.Header.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node10.html">2.3.1 Deprecated methods</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Header.html">2.5 Internationalized headers</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION000240000000000000000">
+2.4 Creating email and MIME objects from scratch</A>
+</H2>
+Ordinarily, you get a message object structure by passing a file or
+some text to a parser, which parses the text and returns the root
+message object.  However you can also build a complete message
+structure from scratch, or even individual <tt class="class">Message</tt> objects by
+hand.  In fact, you can also take an existing structure and add new
+<tt class="class">Message</tt> objects, move them around, etc.  This makes a very
+convenient interface for slicing-and-dicing MIME messages.
+
+<P>
+You can create a new object structure by creating <tt class="class">Message</tt>
+instances, adding attachments and all the appropriate headers manually.
+For MIME messages though, the <tt class="module">email</tt> package provides some
+convenient subclasses to make things easier.  Each of these classes
+should be imported from a module with the same name as the class, from
+within the <tt class="module">email</tt> package.  E.g.:
+
+<P>
+<div class="verbatim"><pre>
+import email.MIMEImage.MIMEImage
+</pre></div>
+
+<P>
+or
+
+<P>
+<div class="verbatim"><pre>
+from email.MIMEText import MIMEText
+</pre></div>
+
+<P>
+Here are the classes:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-65' xml:id='l2h-65' class="class">MIMEBase</tt></b>(</nobr></td>
+  <td><var>_maintype, _subtype, **_params</var>)</td></tr></table></dt>
+<dd>
+This is the base class for all the MIME-specific subclasses of
+<tt class="class">Message</tt>.  Ordinarily you won't create instances specifically
+of <tt class="class">MIMEBase</tt>, although you could.  <tt class="class">MIMEBase</tt> is provided
+primarily as a convenient base class for more specific MIME-aware
+subclasses.
+
+<P>
+<var>_maintype</var> is the <span class="mailheader">Content-Type:</span> major type
+(e.g. <span class="mimetype">text</span> or <span class="mimetype">image</span>), and <var>_subtype</var> is the
+<span class="mailheader">Content-Type:</span> minor type 
+(e.g. <span class="mimetype">plain</span> or <span class="mimetype">gif</span>).  <var>_params</var> is a parameter
+key/value dictionary and is passed directly to
+<tt class="method">Message.add_header()</tt>.
+
+<P>
+The <tt class="class">MIMEBase</tt> class always adds a <span class="mailheader">Content-Type:</span> header
+(based on <var>_maintype</var>, <var>_subtype</var>, and <var>_params</var>), and a
+<span class="mailheader">MIME-Version:</span> header (always set to <code>1.0</code>).
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-66' xml:id='l2h-66' class="class">MIMENonMultipart</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+A subclass of <tt class="class">MIMEBase</tt>, this is an intermediate base class for
+MIME messages that are not <span class="mimetype">multipart</span>.  The primary purpose
+of this class is to prevent the use of the <tt class="method">attach()</tt> method,
+which only makes sense for <span class="mimetype">multipart</span> messages.  If
+<tt class="method">attach()</tt> is called, a <tt class="exception">MultipartConversionError</tt>
+exception is raised.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-67' xml:id='l2h-67' class="class">MIMEMultipart</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>subtype</var><big>[</big><var>,
+    boundary</var><big>[</big><var>, _subparts</var><big>[</big><var>, _params</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+
+<P>
+A subclass of <tt class="class">MIMEBase</tt>, this is an intermediate base class for
+MIME messages that are <span class="mimetype">multipart</span>.  Optional <var>_subtype</var>
+defaults to <span class="mimetype">mixed</span>, but can be used to specify the subtype
+of the message.  A <span class="mailheader">Content-Type:</span> header of
+<span class="mimetype">multipart/</span><var>_subtype</var> will be added to the message
+object.  A <span class="mailheader">MIME-Version:</span> header will also be added.
+
+<P>
+Optional <var>boundary</var> is the multipart boundary string.  When
+<code>None</code> (the default), the boundary is calculated when needed.
+
+<P>
+<var>_subparts</var> is a sequence of initial subparts for the payload.  It
+must be possible to convert this sequence to a list.  You can always
+attach new subparts to the message by using the
+<tt class="method">Message.attach()</tt> method.
+
+<P>
+Additional parameters for the <span class="mailheader">Content-Type:</span> header are
+taken from the keyword arguments, or passed into the <var>_params</var>
+argument, which is a keyword dictionary.
+
+<P>
+
+<span class="versionnote">New in version 2.2.2.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-68' xml:id='l2h-68' class="class">MIMEAudio</tt></b>(</nobr></td>
+  <td><var>_audiodata</var><big>[</big><var>, _subtype</var><big>[</big><var>,
+    _encoder</var><big>[</big><var>, **_params</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+
+<P>
+A subclass of <tt class="class">MIMENonMultipart</tt>, the <tt class="class">MIMEAudio</tt> class
+is used to create MIME message objects of major type <span class="mimetype">audio</span>.
+<var>_audiodata</var> is a string containing the raw audio data.  If this
+data can be decoded by the standard Python module <tt class="module"><a href="module-sndhdr.html">sndhdr</a></tt>,
+then the subtype will be automatically included in the
+<span class="mailheader">Content-Type:</span> header.  Otherwise you can explicitly specify the
+audio subtype via the <var>_subtype</var> parameter.  If the minor type could
+not be guessed and <var>_subtype</var> was not given, then <tt class="exception">TypeError</tt>
+is raised.
+
+<P>
+Optional <var>_encoder</var> is a callable (i.e. function) which will
+perform the actual encoding of the audio data for transport.  This
+callable takes one argument, which is the <tt class="class">MIMEAudio</tt> instance.
+It should use <tt class="method">get_payload()</tt> and <tt class="method">set_payload()</tt> to
+change the payload to encoded form.  It should also add any
+<span class="mailheader">Content-Transfer-Encoding:</span> or other headers to the message
+object as necessary.  The default encoding is base64.  See the
+<tt class="module"><a href="module-email.Encoders.html">email.Encoders</a></tt> module for a list of the built-in encoders.
+
+<P>
+<var>_params</var> are passed straight through to the base class constructor.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-69' xml:id='l2h-69' class="class">MIMEImage</tt></b>(</nobr></td>
+  <td><var>_imagedata</var><big>[</big><var>, _subtype</var><big>[</big><var>,
+    _encoder</var><big>[</big><var>, **_params</var><big>]</big><var></var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+
+<P>
+A subclass of <tt class="class">MIMENonMultipart</tt>, the <tt class="class">MIMEImage</tt> class is
+used to create MIME message objects of major type <span class="mimetype">image</span>.
+<var>_imagedata</var> is a string containing the raw image data.  If this
+data can be decoded by the standard Python module <tt class="module"><a href="module-imghdr.html">imghdr</a></tt>,
+then the subtype will be automatically included in the
+<span class="mailheader">Content-Type:</span> header.  Otherwise you can explicitly specify the
+image subtype via the <var>_subtype</var> parameter.  If the minor type could
+not be guessed and <var>_subtype</var> was not given, then <tt class="exception">TypeError</tt>
+is raised.
+
+<P>
+Optional <var>_encoder</var> is a callable (i.e. function) which will
+perform the actual encoding of the image data for transport.  This
+callable takes one argument, which is the <tt class="class">MIMEImage</tt> instance.
+It should use <tt class="method">get_payload()</tt> and <tt class="method">set_payload()</tt> to
+change the payload to encoded form.  It should also add any
+<span class="mailheader">Content-Transfer-Encoding:</span> or other headers to the message
+object as necessary.  The default encoding is base64.  See the
+<tt class="module"><a href="module-email.Encoders.html">email.Encoders</a></tt> module for a list of the built-in encoders.
+
+<P>
+<var>_params</var> are passed straight through to the <tt class="class">MIMEBase</tt>
+constructor.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-70' xml:id='l2h-70' class="class">MIMEMessage</tt></b>(</nobr></td>
+  <td><var>_msg</var><big>[</big><var>, _subtype</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+A subclass of <tt class="class">MIMENonMultipart</tt>, the <tt class="class">MIMEMessage</tt> class
+is used to create MIME objects of main type <span class="mimetype">message</span>.
+<var>_msg</var> is used as the payload, and must be an instance of class
+<tt class="class">Message</tt> (or a subclass thereof), otherwise a
+<tt class="exception">TypeError</tt> is raised.
+
+<P>
+Optional <var>_subtype</var> sets the subtype of the message; it defaults
+to <span class="mimetype">rfc822</span>.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-71' xml:id='l2h-71' class="class">MIMEText</tt></b>(</nobr></td>
+  <td><var>_text</var><big>[</big><var>, _subtype</var><big>[</big><var>, _charset</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+A subclass of <tt class="class">MIMENonMultipart</tt>, the <tt class="class">MIMEText</tt> class is
+used to create MIME objects of major type <span class="mimetype">text</span>.
+<var>_text</var> is the string for the payload.  <var>_subtype</var> is the
+minor type and defaults to <span class="mimetype">plain</span>.  <var>_charset</var> is the
+character set of the text and is passed as a parameter to the
+<tt class="class">MIMENonMultipart</tt> constructor; it defaults to <code>us-ascii</code>.  No
+guessing or encoding is performed on the text data.
+
+<P>
+
+<span class="versionnote">Changed in version 2.4:
+The previously deprecated <var>_encoding</var> argument has
+been removed.  Encoding happens implicitly based on the <var>_charset</var>
+argument.</span>
+
+</dl>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.3.1 Deprecated methods"
+  href="node10.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.5 Internationalized headers"
+  href="module-email.Header.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node10.html">2.3.1 Deprecated methods</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Header.html">2.5 Internationalized headers</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/node18.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node18.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,236 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node19.html" />
+<link rel="prev" href="module-email.Iterators.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="node19.html" />
+<meta name='aesop' content='information' />
+<title>2.11 Package History</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.10 Iterators"
+  href="module-email.Iterators.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.12 Differences from mimelib"
+  href="node19.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Iterators.html">2.10 Iterators</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node19.html">2.12 Differences from mimelib</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION0002110000000000000000">
+2.11 Package History</A>
+</H2>
+
+<P>
+Version 1 of the <tt class="module">email</tt> package was bundled with Python
+releases up to Python 2.2.1.  Version 2 was developed for the Python
+2.3 release, and backported to Python 2.2.2.  It was also available as
+a separate distutils-based package, and is compatible back to Python 2.1.
+
+<P>
+<tt class="module">email</tt> version 3.0 was released with Python 2.4 and as a separate
+distutils-based package.  It is compatible back to Python 2.3.
+
+<P>
+Here are the differences between <tt class="module">email</tt> version 3 and version 2:
+
+<P>
+
+<UL>
+<LI>The <tt class="class">FeedParser</tt> class was introduced, and the <tt class="class">Parser</tt>
+      class was implemented in terms of the <tt class="class">FeedParser</tt>.  All parsing
+      there for is non-strict, and parsing will make a best effort never to
+      raise an exception.  Problems found while parsing messages are stored in
+      the message's <var>defect</var> attribute.
+
+<P>
+</LI>
+<LI>All aspects of the API which raised <tt class="exception">DeprecationWarning</tt>s in
+      version 2 have been removed.  These include the <var>_encoder</var> argument
+      to the <tt class="class">MIMEText</tt> constructor, the <tt class="method">Message.add_payload()</tt>
+      method, the <tt class="function">Utils.dump_address_pair()</tt> function, and the
+      functions <tt class="function">Utils.decode()</tt> and <tt class="function">Utils.encode()</tt>.
+
+<P>
+</LI>
+<LI>New <tt class="exception">DeprecationWarning</tt>s have been added to:
+      <tt class="method">Generator.__call__()</tt>, <tt class="method">Message.get_type()</tt>,
+      <tt class="method">Message.get_main_type()</tt>, <tt class="method">Message.get_subtype()</tt>, and
+      the <var>strict</var> argument to the <tt class="class">Parser</tt> class.  These are
+      expected to be removed in email 3.1.
+
+<P>
+</LI>
+<LI>Support for Pythons earlier than 2.3 has been removed.
+</LI>
+</UL>
+
+<P>
+Here are the differences between <tt class="module">email</tt> version 2 and version 1:
+
+<P>
+
+<UL>
+<LI>The <tt class="module">email.Header</tt> and <tt class="module">email.Charset</tt> modules
+      have been added.
+
+<P>
+</LI>
+<LI>The pickle format for <tt class="class">Message</tt> instances has changed.
+      Since this was never (and still isn't) formally defined, this
+      isn't considered a backward incompatibility.  However if your
+      application pickles and unpickles <tt class="class">Message</tt> instances, be
+      aware that in <tt class="module">email</tt> version 2, <tt class="class">Message</tt>
+      instances now have private variables <var>_charset</var> and
+      <var>_default_type</var>.
+
+<P>
+</LI>
+<LI>Several methods in the <tt class="class">Message</tt> class have been
+      deprecated, or their signatures changed.  Also, many new methods
+      have been added.  See the documentation for the <tt class="class">Message</tt>
+      class for details.  The changes should be completely backward
+      compatible.
+
+<P>
+</LI>
+<LI>The object structure has changed in the face of
+      <span class="mimetype">message/rfc822</span> content types.  In <tt class="module">email</tt>
+      version 1, such a type would be represented by a scalar payload,
+      i.e. the container message's <tt class="method">is_multipart()</tt> returned
+      false, <tt class="method">get_payload()</tt> was not a list object, but a single
+      <tt class="class">Message</tt> instance.
+
+<P>
+This structure was inconsistent with the rest of the package, so
+      the object representation for <span class="mimetype">message/rfc822</span> content
+      types was changed.  In <tt class="module">email</tt> version 2, the container
+      <em>does</em> return <code>True</code> from <tt class="method">is_multipart()</tt>, and
+      <tt class="method">get_payload()</tt> returns a list containing a single
+      <tt class="class">Message</tt> item.
+
+<P>
+Note that this is one place that backward compatibility could
+      not be completely maintained.  However, if you're already
+      testing the return type of <tt class="method">get_payload()</tt>, you should be
+      fine.  You just need to make sure your code doesn't do a
+      <tt class="method">set_payload()</tt> with a <tt class="class">Message</tt> instance on a
+      container with a content type of <span class="mimetype">message/rfc822</span>.
+
+<P>
+</LI>
+<LI>The <tt class="class">Parser</tt> constructor's <var>strict</var> argument was
+      added, and its <tt class="method">parse()</tt> and <tt class="method">parsestr()</tt> methods
+      grew a <var>headersonly</var> argument.  The <var>strict</var> flag was
+      also added to functions <tt class="function">email.message_from_file()</tt>
+      and <tt class="function">email.message_from_string()</tt>.
+
+<P>
+</LI>
+<LI><tt class="method">Generator.__call__()</tt> is deprecated; use
+      <tt class="method">Generator.flatten()</tt> instead.  The <tt class="class">Generator</tt>
+      class has also grown the <tt class="method">clone()</tt> method.
+
+<P>
+</LI>
+<LI>The <tt class="class">DecodedGenerator</tt> class in the
+      <tt class="module">email.Generator</tt> module was added.
+
+<P>
+</LI>
+<LI>The intermediate base classes <tt class="class">MIMENonMultipart</tt> and
+      <tt class="class">MIMEMultipart</tt> have been added, and interposed in the
+      class hierarchy for most of the other MIME-related derived
+      classes.
+
+<P>
+</LI>
+<LI>The <var>_encoder</var> argument to the <tt class="class">MIMEText</tt> constructor
+      has been deprecated.  Encoding  now happens implicitly based
+      on the <var>_charset</var> argument.
+
+<P>
+</LI>
+<LI>The following functions in the <tt class="module">email.Utils</tt> module have
+      been deprecated: <tt class="function">dump_address_pairs()</tt>,
+      <tt class="function">decode()</tt>, and <tt class="function">encode()</tt>.  The following
+      functions have been added to the module:
+      <tt class="function">make_msgid()</tt>, <tt class="function">decode_rfc2231()</tt>,
+      <tt class="function">encode_rfc2231()</tt>, and <tt class="function">decode_params()</tt>.
+
+<P>
+</LI>
+<LI>The non-public function <tt class="function">email.Iterators._structure()</tt>
+      was added.
+</LI>
+</UL>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.10 Iterators"
+  href="module-email.Iterators.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.12 Differences from mimelib"
+  href="node19.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Iterators.html">2.10 Iterators</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node19.html">2.12 Differences from mimelib</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/node19.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node19.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node20.html" />
+<link rel="prev" href="node18.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="node20.html" />
+<meta name='aesop' content='information' />
+<title>2.12 Differences from mimelib</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.11 Package History"
+  href="node18.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.13 Examples"
+  href="node20.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node18.html">2.11 Package History</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node20.html">2.13 Examples</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION0002120000000000000000">
+2.12 Differences from <tt class="module">mimelib</tt></A>
+</H2>
+
+<P>
+The <tt class="module">email</tt> package was originally prototyped as a separate
+library called
+<a class="ulink" href="http://mimelib.sf.net/"
+  ><tt class="module">mimelib</tt></a>.
+Changes have been made so that
+method names are more consistent, and some methods or modules have
+either been added or removed.  The semantics of some of the methods
+have also changed.  For the most part, any functionality available in
+<tt class="module">mimelib</tt> is still available in the <tt class="module"><a href="module-email.html">email</a></tt> package,
+albeit often in a different way.  Backward compatibility between
+the <tt class="module">mimelib</tt> package and the <tt class="module">email</tt> package was not a
+priority.
+
+<P>
+Here is a brief description of the differences between the
+<tt class="module">mimelib</tt> and the <tt class="module"><a href="module-email.html">email</a></tt> packages, along with hints on
+how to port your applications.
+
+<P>
+Of course, the most visible difference between the two packages is
+that the package name has been changed to <tt class="module"><a href="module-email.html">email</a></tt>.  In
+addition, the top-level package has the following differences:
+
+<P>
+
+<UL>
+<LI><tt class="function">messageFromString()</tt> has been renamed to
+      <tt class="function">message_from_string()</tt>.
+
+<P>
+</LI>
+<LI><tt class="function">messageFromFile()</tt> has been renamed to
+      <tt class="function">message_from_file()</tt>.
+
+<P>
+</LI>
+</UL>
+
+<P>
+The <tt class="class">Message</tt> class has the following differences:
+
+<P>
+
+<UL>
+<LI>The method <tt class="method">asString()</tt> was renamed to <tt class="method">as_string()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">ismultipart()</tt> was renamed to
+      <tt class="method">is_multipart()</tt>.
+
+<P>
+</LI>
+<LI>The <tt class="method">get_payload()</tt> method has grown a <var>decode</var>
+      optional argument.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getall()</tt> was renamed to <tt class="method">get_all()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">addheader()</tt> was renamed to <tt class="method">add_header()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">gettype()</tt> was renamed to <tt class="method">get_type()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getmaintype()</tt> was renamed to
+      <tt class="method">get_main_type()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getsubtype()</tt> was renamed to
+      <tt class="method">get_subtype()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getparams()</tt> was renamed to
+      <tt class="method">get_params()</tt>.
+      Also, whereas <tt class="method">getparams()</tt> returned a list of strings,
+      <tt class="method">get_params()</tt> returns a list of 2-tuples, effectively
+      the key/value pairs of the parameters, split on the "<tt class="character">=</tt>"
+      sign.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getparam()</tt> was renamed to <tt class="method">get_param()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getcharsets()</tt> was renamed to
+      <tt class="method">get_charsets()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getfilename()</tt> was renamed to
+      <tt class="method">get_filename()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getboundary()</tt> was renamed to
+      <tt class="method">get_boundary()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">setboundary()</tt> was renamed to
+      <tt class="method">set_boundary()</tt>.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getdecodedpayload()</tt> was removed.  To get
+      similar functionality, pass the value 1 to the <var>decode</var> flag
+      of the get_payload() method.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getpayloadastext()</tt> was removed.  Similar
+      functionality
+      is supported by the <tt class="class">DecodedGenerator</tt> class in the
+      <tt class="module"><a href="module-email.Generator.html">email.Generator</a></tt> module.
+
+<P>
+</LI>
+<LI>The method <tt class="method">getbodyastext()</tt> was removed.  You can get
+      similar functionality by creating an iterator with
+      <tt class="function">typed_subpart_iterator()</tt> in the
+      <tt class="module"><a href="module-email.Iterators.html">email.Iterators</a></tt> module.
+</LI>
+</UL>
+
+<P>
+The <tt class="class">Parser</tt> class has no differences in its public interface.
+It does have some additional smarts to recognize
+<span class="mimetype">message/delivery-status</span> type messages, which it represents as
+a <tt class="class">Message</tt> instance containing separate <tt class="class">Message</tt>
+subparts for each header block in the delivery status
+notification<A NAME="tex2html51"
+  HREF="#foot2676"><SUP>4</SUP></A>.
+
+<P>
+The <tt class="class">Generator</tt> class has no differences in its public
+interface.  There is a new class in the <tt class="module"><a href="module-email.Generator.html">email.Generator</a></tt>
+module though, called <tt class="class">DecodedGenerator</tt> which provides most of
+the functionality previously available in the
+<tt class="method">Message.getpayloadastext()</tt> method.
+
+<P>
+The following modules and classes have been changed:
+
+<P>
+
+<UL>
+<LI>The <tt class="class">MIMEBase</tt> class constructor arguments <var>_major</var>
+      and <var>_minor</var> have changed to <var>_maintype</var> and
+      <var>_subtype</var> respectively.
+
+<P>
+</LI>
+<LI>The <code>Image</code> class/module has been renamed to
+      <code>MIMEImage</code>.  The <var>_minor</var> argument has been renamed to
+      <var>_subtype</var>.
+
+<P>
+</LI>
+<LI>The <code>Text</code> class/module has been renamed to
+      <code>MIMEText</code>.  The <var>_minor</var> argument has been renamed to
+      <var>_subtype</var>.
+
+<P>
+</LI>
+<LI>The <code>MessageRFC822</code> class/module has been renamed to
+      <code>MIMEMessage</code>.  Note that an earlier version of
+      <tt class="module">mimelib</tt> called this class/module <code>RFC822</code>, but
+      that clashed with the Python standard library module
+      <tt class="module"><a href="module-rfc822.html">rfc822</a></tt> on some case-insensitive file systems.
+
+<P>
+Also, the <tt class="class">MIMEMessage</tt> class now represents any kind of
+      MIME message with main type <span class="mimetype">message</span>.  It takes an
+      optional argument <var>_subtype</var> which is used to set the MIME
+      subtype.  <var>_subtype</var> defaults to <span class="mimetype">rfc822</span>.
+</LI>
+</UL>
+
+<P>
+<tt class="module">mimelib</tt> provided some utility functions in its
+<tt class="module">address</tt> and <tt class="module">date</tt> modules.  All of these functions
+have been moved to the <tt class="module"><a href="module-email.Utils.html">email.Utils</a></tt> module.
+
+<P>
+The <code>MsgReader</code> class/module has been removed.  Its functionality
+is most closely supported in the <tt class="function">body_line_iterator()</tt>
+function in the <tt class="module"><a href="module-email.Iterators.html">email.Iterators</a></tt> module.
+
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot2676">...
+notification</A><A
+ HREF="node19.html#tex2html51"><SUP>4</SUP></A></DT>
+<DD>Delivery Status Notifications (DSN) are defined
+in <a class="rfc" id='rfcref-3260' xml:id='rfcref-3260'
+href="http://www.faqs.org/rfcs/rfc1894.html">RFC 1894</a>.
+
+</DD>
+</DL>
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.11 Package History"
+  href="node18.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.13 Examples"
+  href="node20.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node18.html">2.11 Package History</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node20.html">2.13 Examples</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/node20.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node20.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,408 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="node19.html" />
+<link rel="parent" href="module-email.html" />
+<link rel="next" href="about.html" />
+<meta name='aesop' content='information' />
+<title>2.13 Examples</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.12 Differences from mimelib"
+  href="node19.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="About this document ..."
+  href="about.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node19.html">2.12 Differences from mimelib</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="about.html">About this document ...</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION0002130000000000000000">
+2.13 Examples</A>
+</H2>
+
+<P>
+Here are a few examples of how to use the <tt class="module">email</tt> package to
+read, write, and send simple email messages, as well as more complex
+MIME messages.
+
+<P>
+First, let's see how to create and send a simple text message:
+
+<P>
+<div class="verbatim">
+<pre># Import smtplib for the actual sending function
+import smtplib
+
+# Import the email modules we'll need
+from email.MIMEText import MIMEText
+
+# Open a plain text file for reading.  For this example, assume that
+# the text file contains only ASCII characters.
+fp = open(textfile, 'rb')
+# Create a text/plain message
+msg = MIMEText(fp.read())
+fp.close()
+
+# me == the sender's email address
+# you == the recipient's email address
+msg['Subject'] = 'The contents of %s' % textfile
+msg['From'] = me
+msg['To'] = you
+
+# Send the message via our own SMTP server, but don't include the
+# envelope header.
+s = smtplib.SMTP()
+s.connect()
+s.sendmail(me, [you], msg.as_string())
+s.close()
+</pre>
+<div class="footer">
+<a href="email-simple.txt" type="text/plain">Download as text (original file name: <span class="file">email-simple.py</span>).</a>
+</div></div>
+
+<P>
+Here's an example of how to send a MIME message containing a bunch of
+family pictures that may be residing in a directory:
+
+<P>
+<div class="verbatim">
+<pre># Import smtplib for the actual sending function
+import smtplib
+
+# Here are the email package modules we'll need
+from email.MIMEImage import MIMEImage
+from email.MIMEMultipart import MIMEMultipart
+
+COMMASPACE = ', '
+
+# Create the container (outer) email message.
+msg = MIMEMultipart()
+msg['Subject'] = 'Our family reunion'
+# me == the sender's email address
+# family = the list of all recipients' email addresses
+msg['From'] = me
+msg['To'] = COMMASPACE.join(family)
+msg.preamble = 'Our family reunion'
+# Guarantees the message ends in a newline
+msg.epilogue = ''
+
+# Assume we know that the image files are all in PNG format
+for file in pngfiles:
+    # Open the files in binary mode.  Let the MIMEImage class automatically
+    # guess the specific image type.
+    fp = open(file, 'rb')
+    img = MIMEImage(fp.read())
+    fp.close()
+    msg.attach(img)
+
+# Send the email via our own SMTP server.
+s = smtplib.SMTP()
+s.connect()
+s.sendmail(me, family, msg.as_string())
+s.close()
+</pre>
+<div class="footer">
+<a href="email-mime.txt" type="text/plain">Download as text (original file name: <span class="file">email-mime.py</span>).</a>
+</div></div>
+
+<P>
+Here's an example of how to send the entire contents of a directory as
+an email message:
+<A NAME="tex2html53"
+  HREF="#foot2667"><SUP>5</SUP></A>
+<P>
+<div class="verbatim">
+<pre>#!/usr/bin/env python
+
+"""Send the contents of a directory as a MIME message.
+
+Usage: dirmail [options] from to [to ...]*
+
+Options:
+    -h / -&#45;help
+        Print this message and exit.
+
+    -d directory
+    -&#45;directory=directory
+        Mail the contents of the specified directory, otherwise use the
+        current directory.  Only the regular files in the directory are sent,
+        and we don't recurse to subdirectories.
+
+`from' is the email address of the sender of the message.
+
+`to' is the email address of the recipient of the message, and multiple
+recipients may be given.
+
+The email is sent by forwarding to your local SMTP server, which then does the
+normal delivery process.  Your local machine must be running an SMTP server.
+"""
+
+import sys
+import os
+import getopt
+import smtplib
+# For guessing MIME type based on file name extension
+import mimetypes
+
+from email import Encoders
+from email.Message import Message
+from email.MIMEAudio import MIMEAudio
+from email.MIMEBase import MIMEBase
+from email.MIMEMultipart import MIMEMultipart
+from email.MIMEImage import MIMEImage
+from email.MIMEText import MIMEText
+
+COMMASPACE = ', '
+
+def usage(code, msg=''):
+    print &gt;&#62; sys.stderr, __doc__
+    if msg:
+        print &gt;&#62; sys.stderr, msg
+    sys.exit(code)
+
+def main():
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], 'hd:', ['help', 'directory='])
+    except getopt.error, msg:
+        usage(1, msg)
+
+    dir = os.curdir
+    for opt, arg in opts:
+        if opt in ('-h', '-&#45;help'):
+            usage(0)
+        elif opt in ('-d', '-&#45;directory'):
+            dir = arg
+
+    if len(args) &lt; 2:
+        usage(1)
+
+    sender = args[0]
+    recips = args[1:]
+
+    # Create the enclosing (outer) message
+    outer = MIMEMultipart()
+    outer['Subject'] = 'Contents of directory %s' % os.path.abspath(dir)
+    outer['To'] = COMMASPACE.join(recips)
+    outer['From'] = sender
+    outer.preamble = 'You will not see this in a MIME-aware mail reader.&#92;n'
+    # To guarantee the message ends with a newline
+    outer.epilogue = ''
+
+    for filename in os.listdir(dir):
+        path = os.path.join(dir, filename)
+        if not os.path.isfile(path):
+            continue
+        # Guess the content type based on the file's extension.  Encoding
+        # will be ignored, although we should check for simple things like
+        # gzip'd or compressed files.
+        ctype, encoding = mimetypes.guess_type(path)
+        if ctype is None or encoding is not None:
+            # No guess could be made, or the file is encoded (compressed), so
+            # use a generic bag-of-bits type.
+            ctype = 'application/octet-stream'
+        maintype, subtype = ctype.split('/', 1)
+        if maintype == 'text':
+            fp = open(path)
+            # Note: we should handle calculating the charset
+            msg = MIMEText(fp.read(), _subtype=subtype)
+            fp.close()
+        elif maintype == 'image':
+            fp = open(path, 'rb')
+            msg = MIMEImage(fp.read(), _subtype=subtype)
+            fp.close()
+        elif maintype == 'audio':
+            fp = open(path, 'rb')
+            msg = MIMEAudio(fp.read(), _subtype=subtype)
+            fp.close()
+        else:
+            fp = open(path, 'rb')
+            msg = MIMEBase(maintype, subtype)
+            msg.set_payload(fp.read())
+            fp.close()
+            # Encode the payload using Base64
+            Encoders.encode_base64(msg)
+        # Set the filename parameter
+        msg.add_header('Content-Disposition', 'attachment', filename=filename)
+        outer.attach(msg)
+
+    # Now send the message
+    s = smtplib.SMTP()
+    s.connect()
+    s.sendmail(sender, recips, outer.as_string())
+    s.close()
+
+if __name__ == '__main__':
+    main()
+</pre>
+<div class="footer">
+<a href="email-dir.txt" type="text/plain">Download as text (original file name: <span class="file">email-dir.py</span>).</a>
+</div></div>
+
+<P>
+And finally, here's an example of how to unpack a MIME message like
+the one above, into a directory of files:
+
+<P>
+<div class="verbatim">
+<pre>#!/usr/bin/env python
+
+"""Unpack a MIME message into a directory of files.
+
+Usage: unpackmail [options] msgfile
+
+Options:
+    -h / -&#45;help
+        Print this message and exit.
+
+    -d directory
+    -&#45;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 errno
+import mimetypes
+import email
+
+def usage(code, msg=''):
+    print &gt;&#62; sys.stderr, __doc__
+    if msg:
+        print &gt;&#62; sys.stderr, msg
+    sys.exit(code)
+
+def main():
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], 'hd:', ['help', 'directory='])
+    except getopt.error, msg:
+        usage(1, msg)
+
+    dir = os.curdir
+    for opt, arg in opts:
+        if opt in ('-h', '-&#45;help'):
+            usage(0)
+        elif opt in ('-d', '-&#45;directory'):
+            dir = arg
+
+    try:
+        msgfile = args[0]
+    except IndexError:
+        usage(1)
+
+    try:
+        os.mkdir(dir)
+    except OSError, e:
+        # Ignore directory exists error
+        if e.errno &lt;&gt; 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(dir, filename), 'wb')
+        fp.write(part.get_payload(decode=1))
+        fp.close()
+
+if __name__ == '__main__':
+    main()
+</pre>
+<div class="footer">
+<a href="email-unpack.txt" type="text/plain">Download as text (original file name: <span class="file">email-unpack.py</span>).</a>
+</div></div>
+
+<P>
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot2667">... message:</A><A
+ HREF="node20.html#tex2html53"><SUP>5</SUP></A></DT>
+<DD>Thanks to Matthew Dixon Cowles for the original inspiration
+          and examples.
+
+</DD>
+</DL>
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.12 Differences from mimelib"
+  href="node19.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2 email  "
+  href="module-email.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="About this document ..."
+  href="about.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node19.html">2.12 Differences from mimelib</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.html">2 email  </A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="about.html">About this document ...</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/node4.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node4.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="module-email.Message.html" />
+<link rel="parent" href="module-email.Message.html" />
+<link rel="next" href="module-email.Parser.html" />
+<meta name='aesop' content='information' />
+<title>2.1.1 Deprecated methods</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.1 Representing an email"
+  href="module-email.Message.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.1 Representing an email"
+  href="module-email.Message.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Message.html">2.1 Representing an email</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Message.html">2.1 Representing an email</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Parser.html">2.2 Parsing email messages</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000211000000000000000">
+2.1.1 Deprecated methods</A>
+</H3>
+
+<P>
+
+<span class="versionnote">Changed in version 2.4:
+The <tt class="method">add_payload()</tt> method was removed; use the
+<tt class="method">attach()</tt> method instead.</span>
+
+<P>
+The following methods are deprecated.  They are documented here for
+completeness.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-46' xml:id='l2h-46' class="method">get_type</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>failobj</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the message's content type, as a string of the form
+<span class="mimetype">maintype/subtype</span> as taken from the
+<span class="mailheader">Content-Type:</span> header.
+The returned string is coerced to lowercase.
+
+<P>
+If there is no <span class="mailheader">Content-Type:</span> header in the message,
+<var>failobj</var> is returned (defaults to <code>None</code>).
+
+<P>
+<div class="versionnote"><b>Deprecated since release 2.2.2.</b>
+Use the <tt class="method">get_content_type()</tt> method instead.</div><p></p>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-47' xml:id='l2h-47' class="method">get_main_type</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>failobj</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the message's <em>main</em> content type.  This essentially returns the
+<var>maintype</var> part of the string returned by <tt class="method">get_type()</tt>, with the
+same semantics for <var>failobj</var>.
+
+<P>
+<div class="versionnote"><b>Deprecated since release 2.2.2.</b>
+Use the <tt class="method">get_content_maintype()</tt> method instead.</div><p></p>
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-48' xml:id='l2h-48' class="method">get_subtype</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>failobj</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return the message's sub-content type.  This essentially returns the
+<var>subtype</var> part of the string returned by <tt class="method">get_type()</tt>, with the
+same semantics for <var>failobj</var>.
+
+<P>
+<div class="versionnote"><b>Deprecated since release 2.2.2.</b>
+Use the <tt class="method">get_content_subtype()</tt> method instead.</div><p></p>
+</dl>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.1 Representing an email"
+  href="module-email.Message.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.1 Representing an email"
+  href="module-email.Message.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Message.html">2.1 Representing an email</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Message.html">2.1 Representing an email</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Parser.html">2.2 Parsing email messages</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/node6.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node6.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node7.html" />
+<link rel="prev" href="module-email.Parser.html" />
+<link rel="parent" href="module-email.Parser.html" />
+<link rel="next" href="node7.html" />
+<meta name='aesop' content='information' />
+<title>2.2.1 FeedParser API</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.2.2 Parser class API"
+  href="node7.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Parser.html">2.2 Parsing email messages</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Parser.html">2.2 Parsing email messages</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node7.html">2.2.2 Parser class API</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000221000000000000000">
+2.2.1 FeedParser API</A>
+</H3>
+
+<P>
+
+<span class="versionnote">New in version 2.4.</span>
+
+<P>
+The <tt class="class">FeedParser</tt> provides an API that is conducive to incremental
+parsing of email messages, such as would be necessary when reading the text of
+an email message from a source that can block (e.g. a socket).  The
+<tt class="class">FeedParser</tt> can of course be used to parse an email message fully
+contained in a string or a file, but the classic <tt class="class">Parser</tt> API may be
+more convenient for such use cases.  The semantics and results of the two
+parser APIs are identical.
+
+<P>
+The <tt class="class">FeedParser</tt>'s API is simple; you create an instance, feed it a
+bunch of text until there's no more to feed it, then close the parser to
+retrieve the root message object.  The <tt class="class">FeedParser</tt> is extremely
+accurate when parsing standards-compliant messages, and it does a very good
+job of parsing non-compliant messages, providing information about how a
+message was deemed broken.  It will populate a message object's <var>defects</var>
+attribute with a list of any problems it found in a message.  See the
+<tt class="module"><a href="module-email.Errors.html">email.Errors</a></tt> module for the list of defects that it can find.
+
+<P>
+Here is the API for the <tt class="class">FeedParser</tt>:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-50' xml:id='l2h-50' class="class">FeedParser</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>_factory</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Create a <tt class="class">FeedParser</tt> instance.  Optional <var>_factory</var> is a
+no-argument callable that will be called whenever a new message object is
+needed.  It defaults to the <tt class="class">email.Message.Message</tt> class.
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-51' xml:id='l2h-51' class="method">feed</tt></b>(</nobr></td>
+  <td><var>data</var>)</td></tr></table></dt>
+<dd>
+Feed the <tt class="class">FeedParser</tt> some more data.  <var>data</var> should be a
+string containing one or more lines.  The lines can be partial and the
+<tt class="class">FeedParser</tt> will stitch such partial lines together properly.  The
+lines in the string can have any of the common three line endings, carriage
+return, newline, or carriage return and newline (they can even be mixed).
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-52' xml:id='l2h-52' class="method">close</tt></b>(</nobr></td>
+  <td><var></var>)</td></tr></table></dt>
+<dd>
+Closing a <tt class="class">FeedParser</tt> completes the parsing of all previously fed data,
+and returns the root message object.  It is undefined what happens if you feed
+more data to a closed <tt class="class">FeedParser</tt>.
+</dl>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.2.2 Parser class API"
+  href="node7.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="module-email.Parser.html">2.2 Parsing email messages</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Parser.html">2.2 Parsing email messages</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node7.html">2.2.2 Parser class API</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/node7.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node7.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="next" href="node8.html" />
+<link rel="prev" href="node6.html" />
+<link rel="parent" href="module-email.Parser.html" />
+<link rel="next" href="node8.html" />
+<meta name='aesop' content='information' />
+<title>2.2.2 Parser class API</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.2.1 FeedParser API"
+  href="node6.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.2.3 Additional notes"
+  href="node8.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node6.html">2.2.1 FeedParser API</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Parser.html">2.2 Parsing email messages</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node8.html">2.2.3 Additional notes</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000222000000000000000">
+2.2.2 Parser class API</A>
+</H3>
+
+<P>
+The <tt class="class">Parser</tt> provides an API that can be used to parse a message when
+the complete contents of the message are available in a string or file.  The
+<tt class="module">email.Parser</tt> module also provides a second class, called
+<tt class="class">HeaderParser</tt> which can be used if you're only interested in
+the headers of the message. <tt class="class">HeaderParser</tt> can be much faster in
+these situations, since it does not attempt to parse the message body,
+instead setting the payload to the raw body as a string.
+<tt class="class">HeaderParser</tt> has the same API as the <tt class="class">Parser</tt> class.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-53' xml:id='l2h-53' class="class">Parser</tt></b>(</nobr></td>
+  <td><var></var><big>[</big><var>_class</var><big>[</big><var>, strict</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+The constructor for the <tt class="class">Parser</tt> class takes an optional
+argument <var>_class</var>.  This must be a callable factory (such as a
+function or a class), and it is used whenever a sub-message object
+needs to be created.  It defaults to <tt class="class">Message</tt> (see
+<tt class="module"><a href="module-email.Message.html">email.Message</a></tt>).  The factory will be called without
+arguments.
+
+<P>
+The optional <var>strict</var> flag is ignored.  <div class="versionnote"><b>Deprecated since release 2.4.</b>
+Because the
+<tt class="class">Parser</tt> class is a backward compatible API wrapper around the
+new-in-Python 2.4 <tt class="class">FeedParser</tt>, <em>all</em> parsing is effectively
+non-strict.  You should simply stop passing a <var>strict</var> flag to the
+<tt class="class">Parser</tt> constructor.</div><p></p>
+
+<P>
+
+<span class="versionnote">Changed in version 2.2.2:
+The <var>strict</var> flag was added.</span>
+
+<span class="versionnote">Changed in version 2.4:
+The <var>strict</var> flag was deprecated.</span>
+
+</dl>
+
+<P>
+The other public <tt class="class">Parser</tt> methods are:
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-54' xml:id='l2h-54' class="method">parse</tt></b>(</nobr></td>
+  <td><var>fp</var><big>[</big><var>, headersonly</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Read all the data from the file-like object <var>fp</var>, parse the
+resulting text, and return the root message object.  <var>fp</var> must
+support both the <tt class="method">readline()</tt> and the <tt class="method">read()</tt> methods
+on file-like objects.
+
+<P>
+The text contained in <var>fp</var> must be formatted as a block of <a class="rfc" id='rfcref-3102' xml:id='rfcref-3102'
+href="http://www.faqs.org/rfcs/rfc2822.html">RFC 2822</a>
+style headers and header continuation lines, optionally preceded by a
+envelope header.  The header block is terminated either by the
+end of the data or by a blank line.  Following the header block is the
+body of the message (which may contain MIME-encoded subparts).
+
+<P>
+Optional <var>headersonly</var> is as with the <tt class="method">parse()</tt> method.
+
+<P>
+
+<span class="versionnote">Changed in version 2.2.2:
+The <var>headersonly</var> flag was added.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-55' xml:id='l2h-55' class="method">parsestr</tt></b>(</nobr></td>
+  <td><var>text</var><big>[</big><var>, headersonly</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Similar to the <tt class="method">parse()</tt> method, except it takes a string
+object instead of a file-like object.  Calling this method on a string
+is exactly equivalent to wrapping <var>text</var> in a <tt class="class">StringIO</tt>
+instance first and calling <tt class="method">parse()</tt>.
+
+<P>
+Optional <var>headersonly</var> is a flag specifying whether to stop
+parsing after reading the headers or not.  The default is <code>False</code>,
+meaning it parses the entire contents of the file.
+
+<P>
+
+<span class="versionnote">Changed in version 2.2.2:
+The <var>headersonly</var> flag was added.</span>
+
+</dl>
+
+<P>
+Since creating a message object structure from a string or a file
+object is such a common task, two functions are provided as a
+convenience.  They are available in the top-level <tt class="module">email</tt>
+package namespace.
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-56' xml:id='l2h-56' class="function">message_from_string</tt></b>(</nobr></td>
+  <td><var>s</var><big>[</big><var>, _class</var><big>[</big><var>, strict</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return a message object structure from a string.  This is exactly
+equivalent to <code>Parser().parsestr(s)</code>.  Optional <var>_class</var> and
+<var>strict</var> are interpreted as with the <tt class="class">Parser</tt> class constructor.
+
+<P>
+
+<span class="versionnote">Changed in version 2.2.2:
+The <var>strict</var> flag was added.</span>
+
+</dl>
+
+<P>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><tt id='l2h-57' xml:id='l2h-57' class="function">message_from_file</tt></b>(</nobr></td>
+  <td><var>fp</var><big>[</big><var>, _class</var><big>[</big><var>, strict</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+Return a message object structure tree from an open file object.  This
+is exactly equivalent to <code>Parser().parse(fp)</code>.  Optional
+<var>_class</var> and <var>strict</var> are interpreted as with the
+<tt class="class">Parser</tt> class constructor.
+
+<P>
+
+<span class="versionnote">Changed in version 2.2.2:
+The <var>strict</var> flag was added.</span>
+
+</dl>
+
+<P>
+Here's an example of how you might use this at an interactive Python
+prompt:
+
+<P>
+<div class="verbatim"><pre>
+&gt;&gt;&gt; import email
+&gt;&gt;&gt; msg = email.message_from_string(myString)
+</pre></div>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.2.1 FeedParser API"
+  href="node6.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.2.3 Additional notes"
+  href="node8.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node6.html">2.2.1 FeedParser API</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Parser.html">2.2 Parsing email messages</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="node8.html">2.2.3 Additional notes</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/node8.html
==============================================================================
--- (empty file)
+++ sandbox/trunk/emailpkg/3_0/docs/node8.html	Mon Mar  6 02:05:58 2006
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<link rel="STYLESHEET" href="mimelib.css" type='text/css' />
+<link rel="first" href="mimelib.html" title='email Package Reference' />
+<link rel='last' href='about.html' title='About this document...' />
+<link rel='help' href='about.html' title='About this document...' />
+<link rel="prev" href="node7.html" />
+<link rel="parent" href="module-email.Parser.html" />
+<link rel="next" href="module-email.Generator.html" />
+<meta name='aesop' content='information' />
+<title>2.2.3 Additional notes</title>
+</head>
+<body>
+<DIV CLASS="navigation">
+<div id='top-navigation-panel' xml:id='top-navigation-panel'>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.2.2 Parser class API"
+  href="node7.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.3 Generating MIME documents"
+  href="module-email.Generator.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node7.html">2.2.2 Parser class API</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Parser.html">2.2 Parsing email messages</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Generator.html">2.3 Generating MIME documents</A>
+</div>
+<hr /></div>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION000223000000000000000">
+2.2.3 Additional notes</A>
+</H3>
+
+<P>
+Here are some notes on the parsing semantics:
+
+<P>
+
+<UL>
+<LI>Most non-<span class="mimetype">multipart</span> type messages are parsed as a single
+      message object with a string payload.  These objects will return
+      <code>False</code> for <tt class="method">is_multipart()</tt>.  Their
+      <tt class="method">get_payload()</tt> method will return a string object.
+
+<P>
+</LI>
+<LI>All <span class="mimetype">multipart</span> type messages will be parsed as a
+      container message object with a list of sub-message objects for
+      their payload.  The outer container message will return
+      <code>True</code> for <tt class="method">is_multipart()</tt> and their
+      <tt class="method">get_payload()</tt> method will return the list of
+      <tt class="class">Message</tt> subparts.
+
+<P>
+</LI>
+<LI>Most messages with a content type of <span class="mimetype">message/*</span>
+      (e.g. <span class="mimetype">message/delivery-status</span> and
+      <span class="mimetype">message/rfc822</span>) will also be parsed as container
+      object containing a list payload of length 1.  Their
+      <tt class="method">is_multipart()</tt> method will return <code>True</code>.  The
+      single element in the list payload will be a sub-message object.
+
+<P>
+</LI>
+<LI>Some non-standards compliant messages may not be internally consistent
+      about their <span class="mimetype">multipart</span>-edness.  Such messages may have a
+      <span class="mailheader">Content-Type:</span> header of type <span class="mimetype">multipart</span>, but their
+      <tt class="method">is_multipart()</tt> method may return <code>False</code>.  If such
+      messages were parsed with the <tt class="class">FeedParser</tt>, they will have an
+      instance of the <tt class="class">MultipartInvariantViolationDefect</tt> class in their
+      <var>defects</var> attribute list.  See <tt class="module"><a href="module-email.Errors.html">email.Errors</a></tt> for
+      details.
+</LI>
+</UL>
+
+<P>
+
+<DIV CLASS="navigation">
+<div class='online-navigation'>
+<p></p><hr />
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td class='online-navigation'><a rel="prev" title="2.2.2 Parser class API"
+  href="node7.html"><img src='previous.png'
+  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
+<td class='online-navigation'><a rel="parent" title="2.2 Parsing email messages"
+  href="module-email.Parser.html"><img src='up.png'
+  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
+<td class='online-navigation'><a rel="next" title="2.3 Generating MIME documents"
+  href="module-email.Generator.html"><img src='next.png'
+  border='0' height='32'  alt='Next Page' width='32' /></A></td>
+<td align="center" width="100%">email Package Reference</td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+<td class='online-navigation'><img src='blank.png'
+  border='0' height='32'  alt='' width='32' /></td>
+</tr></table>
+<div class='online-navigation'>
+<b class="navlabel">Previous:</b>
+<a class="sectref" rel="prev" href="node7.html">2.2.2 Parser class API</A>
+<b class="navlabel">Up:</b>
+<a class="sectref" rel="parent" href="module-email.Parser.html">2.2 Parsing email messages</A>
+<b class="navlabel">Next:</b>
+<a class="sectref" rel="next" href="module-email.Generator.html">2.3 Generating MIME documents</A>
+</div>
+</div>
+<hr />
+<span class="release-info">Release 3.0, documentation updated on March 5, 2006.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>

Added: sandbox/trunk/emailpkg/3_0/docs/previous.png
==============================================================================
Binary file. No diff available.

Added: sandbox/trunk/emailpkg/3_0/docs/pyfav.png
==============================================================================
Binary file. No diff available.

Added: sandbox/trunk/emailpkg/3_0/docs/up.png
==============================================================================
Binary file. No diff available.


More information about the Python-checkins mailing list