From 2cdb8eb44dd2e676c9d0091029563f17d8869728 Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Thu, 27 Jun 2019 14:39:03 -0400 Subject: [PATCH] fix message header argument, make sure we remove all headers in cases of duplicate header or non-matching case --- src/gam.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gam.py b/src/gam.py index 5c70404e..2ff10bb4 100755 --- a/src/gam.py +++ b/src/gam.py @@ -10968,19 +10968,20 @@ def send_email(subject, body, recipient=None, sender=None, user=None, method='se recipient = userId default_recipient = True msg = message_from_string(body) - msg.update(msgHeaders) + for header, value in msgHeaders.items(): + msg.__delitem__(header) # can remove multiple case-insensitive matching headers + msg.add_header(header, value) if subject: - del msg['Subject'] + msg.__delitem__('Subject') msg['Subject'] = subject if not default_sender: - del msg['From'] + msg.__delitem__('From') if not msg['From']: msg['From'] = sender if not default_recipient: - del msg['To'] + msg.__delitem__('to') if not msg['To']: msg['To'] = recipient - print(msg) api_body['raw'] = base64.urlsafe_b64encode(msg.as_bytes()).decode() if method == 'draft': resource = gmail.users().drafts()