import re
import random
-from types import ListType, StringType
+from types import ListType
from cStringIO import StringIO
from email.Header import Header
+try:
+ from email._compat22 import _isstring
+except SyntaxError:
+ from email._compat21 import _isstring
+
+
EMPTYSTRING = ''
SEMISPACE = '; '
BAR = '|'
cset = msg.get_charset()
if cset is not None:
payload = cset.body_encode(payload)
- if not isinstance(payload, StringType):
+ if not _isstring(payload):
raise TypeError, 'string payload expected: %s' % type(payload)
if self._mangle_from_:
payload = fcre.sub('>From ', payload)
print >> self._fp, '\n'
print >> self._fp, '--' + boundary + '--'
return
+ elif _isstring(subparts):
+ # e.g. a non-strict parse of a message with no starting boundary.
+ self._fp.write(subparts)
+ return
elif not isinstance(subparts, ListType):
# Scalar payload
subparts = [subparts]