better header decoding

This commit is contained in:
2021-12-07 16:20:23 +01:00
parent 0bc6637047
commit eb2e33ce44

View File

@@ -29,11 +29,15 @@ IMPORT_RE = re.compile(r"@import\((.*)\)")
FILE_RE = re.compile(r"@file\((.*)\)") FILE_RE = re.compile(r"@file\((.*)\)")
def decode_header(header): def decode_header(header):
decoded_header = email.header.decode_header(header)[0] decoded_headers = email.header.decode_header(header)
encoding = decoded_header[1] or "ascii" header_strs = []
if encoding == "unknown-8bit": for dheader in decoded_headers:
encoding = "ascii" encoding = dheader[1] or "ascii"
return decoded_header[0].decode(encoding, errors="replace") if isinstance(decoded_header[0], bytes) else decoded_header[0] if encoding == "unknown-8bit":
encoding = "ascii"
result = dheader[0].decode(encoding, errors="replace") if isinstance(dheader[0], bytes) else dheader[0]
header_strs.append(result)
return "".join(header_strs)
def get_body_text(msg): def get_body_text(msg):
# from https://stackoverflow.com/a/1463144 # from https://stackoverflow.com/a/1463144