RELEASED email package version 2.5

I've just released the (standalone) email package version 2.5. This is identical to the version that is in the current cvs development tree for Python 2.3. I've also backported it to what will be Python 2.2.3.
email 2.5 is made available as a distutils package for installing in earlier versions of Python. It is compatible with Python 2.1 Python 2.2, and Python 2.3. See below for a summary of changes.
The email package is a library for parsing, handling, and generating email messages and other RFC 2822 style documents. It conforms to most of the email related RFCs including 2045-2047 (the MIME RFCs) and 2231. It is intended to replace several older modules in the standard distribution, such as rfc822, mimetools, multifile, mimify, and MIMEWriter, and such non-standard modules as mimecntl.
email-2.5.tar.gz is available from the mimelib project on SourceForge:
http://sf.net/projects/mimelib
More information, as well as on-line documentation is available on the home page:
Enjoy, -Barry
-----snip snip----- - 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.
- 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.
participants (1)
-
Barry Warsaw