From 1241838b266beb9853ccbc313f4f72a8f07e0048 Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Thu, 26 Nov 2020 17:03:50 +0100 Subject: [PATCH] take into account message encoding in add_header() --- app/email_utils.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/app/email_utils.py b/app/email_utils.py index e4cf8594..7af8078b 100644 --- a/app/email_utils.py +++ b/app/email_utils.py @@ -702,26 +702,38 @@ def encode_text(text: str, encoding: str = "base64") -> str: def add_header(msg: Message, text_header, html_header) -> Message: if msg.get_content_type() == "text/plain": + encoding = get_encoding(msg) payload = msg.get_payload() if type(payload) is str: clone_msg = copy(msg) - payload = f"{text_header}\n---\n{payload}" + to_append = encode_text(f"{text_header}\n---\n", encoding) + payload = f"{to_append}{payload}" clone_msg.set_payload(payload) return clone_msg elif msg.get_content_type() == "text/html": + encoding = get_encoding(msg) payload = msg.get_payload() if type(payload) is str: - - new_payload = f""" + new_payload = ( + encode_text( + f""" - +
{html_header}
{payload}""", + encoding, + ) + + payload + + encode_text( + """
- """ + """, + encoding, + ) + ) clone_msg = copy(msg) clone_msg.set_payload(new_payload) return clone_msg