output("\n") # End of headers
-def recode(s, charset):
- return unicode(s, charset, "replace").encode(g.default_encoding, "replace")
-
def recode_if_needed(s, charset):
if charset and charset.lower() <> g.default_encoding:
- s = recode(s, charset)
+ s = unicode(s, charset, "replace").encode(g.default_encoding, "replace")
return s
set_header(msg, header, new_value)
-def _decode_header_param(s):
- return recode_if_needed(s[2], s[0])
-
def decode_header_param(msg, header, param):
"Decode mail header's parameter (if exists) and put it back, if it was encoded"
value = msg.get_param(param, header=header)
if value:
if isinstance(value, tuple):
- new_value = _decode_header_param(value)
+ 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
output("\nMessage body of type %s skipped.\n" % ctype)
break
elif content_type in g.error_mask:
- raise ValueError, "content type %s prohibited" % ctype
+ break
else:
# Neither content type nor masks were listed - decode by default
outstring = totext(msg, outstring)
elif content_type in g.save_message_mask:
_save_message(msg, outstring, save_headers=True, save_body=True)
+ for content_type in masks:
+ if content_type in g.error_mask:
+ raise ValueError, "content type %s prohibited" % ctype
+
def decode_multipart(msg):
"Decode multipart"