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
msg = email.message_from_file(infile)
for header, value in g.set_header_value:
- msg[header] = value
+ set_header(msg, header, value)
for header, param, value in g.set_header_param:
if header in msg: