def recode_if_needed(s, charset):
- if charset and charset.lower() <> g.default_encoding:
- s = unicode(s, charset, "replace").encode(g.default_encoding, "replace")
+ if charset and charset.lower() != g.default_encoding:
+ 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
+ if new_value != value: # do not bother to touch msg if not changed
set_header(msg, header, new_value)
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):
new_value = recode_if_needed(value[2], value[0])
else:
new_value = _decode_header(value)
- if new_value <> value: # do not bother to touch msg if not changed
+ if new_value != value: # do not bother to touch msg if not changed
msg.set_param(param, new_value, header)
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
"Recode charset of the message to the default charset"
save_charset = charset = msg.get_content_charset()
- if charset and charset.lower() <> g.default_encoding:
+ if charset and charset.lower() != g.default_encoding:
s = recode_if_needed(s, charset)
content_type = msg.get_content_type()
set_content_type(msg, content_type, g.default_encoding)
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)