def recode_if_needed(s, charset):
if charset and charset.lower() != g.default_encoding:
- s = unicode(s, charset, "replace").encode(g.default_encoding, "replace")
+ s = s.decode(charset, "replace").encode(g.default_encoding, "replace")
return s
"""Return a decoded string according to RFC 2047.
NOTE: This is almost the same as email.Utils.decode.
"""
- import email.Header
+ import email.header
- L = email.Header.decode_header(s)
+ L = email.header.decode_header(s)
if not isinstance(L, list):
# s wasn't decoded
return s
def decode_header(msg, header):
"Decode mail header (if exists) and put it back, if it was encoded"
- if msg.has_key(header):
+ if header in msg:
value = msg[header]
new_value = _decode_header(value)
if new_value != value: # do not bother to touch msg if not changed
def decode_header_param(msg, header, param):
"Decode mail header's parameter (if exists) and put it back, if it was encoded"
- if msg.has_key(header):
+ if header in msg:
value = msg.get_param(param, header=header)
if value:
if isinstance(value, tuple):
def set_header(msg, header, value):
"Replace header"
- if msg.has_key(header):
+ if header in msg:
msg.replace_header(header, value)
else:
msg[header] = value
entries = mailcap.lookup(caps, content_type, "view")
for entry in entries:
- if entry.has_key('copiousoutput'):
- if entry.has_key('test'):
+ if 'copiousoutput' in entry:
+ if 'test' in entry:
test = mailcap.subst(entry['test'], content_type, filename)
if test and os.system(test) != 0:
continue
for content_type in masks:
if content_type in g.error_mask:
- raise ValueError, "content type %s prohibited" % ctype
+ raise ValueError("content type %s prohibited" % ctype)
def decode_multipart(msg):
"Decode multipart"
for content_type in masks:
if content_type in g.error_mask:
- raise ValueError, "content type %s prohibited" % ctype
+ raise ValueError("content type %s prohibited" % ctype)
output_headers(msg)