From c04f5102d6132f69364f501bee3d9031fb0c8221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Casaj=C3=BAs?= Date: Tue, 29 Aug 2023 12:37:26 +0200 Subject: [PATCH] Fix: Handle email headers as strings if the are Header type (#1850) --- app/handler/unsubscribe_generator.py | 3 +++ tests/utils.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/handler/unsubscribe_generator.py b/app/handler/unsubscribe_generator.py index 28acbf7c..7e09626d 100644 --- a/app/handler/unsubscribe_generator.py +++ b/app/handler/unsubscribe_generator.py @@ -1,4 +1,5 @@ import urllib +from email.header import Header from email.message import Message from app.email import headers @@ -33,6 +34,8 @@ class UnsubscribeGenerator: if not unsubscribe_data: LOG.info("Email has no unsubscribe header") return message + if isinstance(unsubscribe_data, Header): + unsubscribe_data = str(unsubscribe_data.encode) raw_methods = [method.strip() for method in unsubscribe_data.split(",")] mailto_unsubs = None other_unsubs = [] diff --git a/tests/utils.py b/tests/utils.py index b66ed359..fe4f5654 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -71,7 +71,7 @@ def load_eml_file( if not template_values: template_values = {} rendered = template.render(**template_values) - return email.message_from_string(rendered) + return email.message_from_bytes(rendered.encode("utf-8")) def random_email() -> str: