summaryrefslogtreecommitdiffstats
path: root/Lib/email/MIMEText.py
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2002-04-10 21:01:31 (GMT)
committerBarry Warsaw <barry@python.org>2002-04-10 21:01:31 (GMT)
commit409a4c08b545aa064cf8fe3b8de51404756a301e (patch)
tree06cf8fe44e1fe28fbc0147635ec41961f2df6515 /Lib/email/MIMEText.py
parent68e69338ae19c37bd3e69cb76e107bfa76231e06 (diff)
downloadcpython-409a4c08b545aa064cf8fe3b8de51404756a301e.zip
cpython-409a4c08b545aa064cf8fe3b8de51404756a301e.tar.gz
cpython-409a4c08b545aa064cf8fe3b8de51404756a301e.tar.bz2
Sync'ing with standalone email package 2.0.1. This adds support for
non-us-ascii character sets in headers and bodies. Some API changes (with DeprecationWarnings for the old APIs). Better RFC-compliant implementations of base64 and quoted-printable. Updated test cases. Documentation updates to follow (after I finish writing them ;).
Diffstat (limited to 'Lib/email/MIMEText.py')
-rw-r--r--Lib/email/MIMEText.py35
1 files changed, 21 insertions, 14 deletions
diff --git a/Lib/email/MIMEText.py b/Lib/email/MIMEText.py
index ccce9fb..8669d28 100644
--- a/Lib/email/MIMEText.py
+++ b/Lib/email/MIMEText.py
@@ -1,9 +1,10 @@
-# Copyright (C) 2001 Python Software Foundation
+# Copyright (C) 2001,2002 Python Software Foundation
# Author: barry@zope.com (Barry Warsaw)
"""Class representing text/* type MIME documents.
"""
+import warnings
import MIMEBase
from Encoders import encode_7or8bit
@@ -13,7 +14,7 @@ class MIMEText(MIMEBase.MIMEBase):
"""Class for generating text/* type MIME documents."""
def __init__(self, _text, _subtype='plain', _charset='us-ascii',
- _encoder=encode_7or8bit):
+ _encoder=None):
"""Create a text/* type MIME document.
_text is the string for this message object. If the text does not end
@@ -22,20 +23,26 @@ class MIMEText(MIMEBase.MIMEBase):
_subtype is the MIME sub content type, defaulting to "plain".
_charset is the character set parameter added to the Content-Type:
- header. This defaults to "us-ascii".
-
- _encoder is a function which will perform the actual encoding for
- transport of the text data. It takes one argument, which is this
- Text instance. It should use get_payload() and set_payload() to
- change the payload to the encoded form. It should also add any
- Content-Transfer-Encoding: or other headers to the message as
- necessary. The default encoding doesn't actually modify the payload,
- but it does set Content-Transfer-Encoding: to either `7bit' or `8bit'
- as appropriate.
+ header. This defaults to "us-ascii". Note that as a side-effect, the
+ Content-Transfer-Encoding: header will also be set.
+
+ The use of the _encoder is deprecated. The encoding of the payload,
+ and the setting of the character set parameter now happens implicitly
+ based on the _charset argument. If _encoder is supplied, then a
+ DeprecationWarning is used, and the _encoder functionality may
+ override any header settings indicated by _charset. This is probably
+ not what you want.
"""
MIMEBase.MIMEBase.__init__(self, 'text', _subtype,
**{'charset': _charset})
if _text and _text[-1] <> '\n':
_text += '\n'
- self.set_payload(_text)
- _encoder(self)
+ self.set_payload(_text, _charset)
+ if _encoder is not None:
+ warnings.warn('_encoder argument is obsolete.',
+ DeprecationWarning, 2)
+ # Because set_payload() with a _charset will set its own
+ # Content-Transfer-Encoding: header, we need to delete the
+ # existing one or will end up with two of them. :(
+ del self['content-transfer-encoding']
+ _encoder(self)