From 7986ff081939e2271e376e6e2299daa066ae00fe Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Fri, 15 Jan 2021 11:30:43 +0100 Subject: [PATCH] Handle the case msg.get_all return Header object (and not string) --- email_handler.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/email_handler.py b/email_handler.py index 02c4e248..58101ec6 100644 --- a/email_handler.py +++ b/email_handler.py @@ -258,6 +258,8 @@ def replace_header_when_forward(msg: Message, alias: Alias, header: str): """ new_addrs: [str] = [] headers = msg.get_all(header, []) + # headers can be an array of Header, convert it to string here + headers = [str(h) for h in headers] for contact_name, contact_email in getaddresses(headers): # convert back to original then parse again to make sure contact_name is unicode addr = formataddr((contact_name, contact_email)) @@ -326,8 +328,11 @@ def replace_header_when_reply(msg: Message, alias: Alias, header: str): Replace CC or To Reply emails by original emails """ new_addrs: [str] = [] + headers = msg.get_all(header, []) + # headers can be an array of Header, convert it to string here + headers = [str(h) for h in headers] - for _, reply_email in getaddresses(msg.get_all(header, [])): + for _, reply_email in getaddresses(headers): # no transformation when alias is already in the header if reply_email == alias.email: continue