diff --git a/ietf/message/utils.py b/ietf/message/utils.py index 5fae361fd..9ae32f796 100644 --- a/ietf/message/utils.py +++ b/ietf/message/utils.py @@ -1,3 +1,4 @@ +# Copyright The IETF Trust 2012-2019, All Rights Reserved import re, datetime, email from ietf.utils.mail import send_mail_text, send_mail_mime @@ -6,16 +7,16 @@ from ietf.message.models import Message first_dot_on_line_re = re.compile(r'^\.', re.MULTILINE) def infer_message(s): - parsed = email.message_from_string(s.encode("utf-8")) + parsed = email.message_from_string(s) m = Message() - m.subject = parsed.get("Subject", "").decode("utf-8") - m.frm = parsed.get("From", "").decode("utf-8") - m.to = parsed.get("To", "").decode("utf-8") - m.cc = parsed.get("Cc", "").decode("utf-8") - m.bcc = parsed.get("Bcc", "").decode("utf-8") - m.reply_to = parsed.get("Reply-To", "").decode("utf-8") - m.body = parsed.get_payload().decode("utf-8") + m.subject = parsed.get("Subject", "") + m.frm = parsed.get("From", "") + m.to = parsed.get("To", "") + m.cc = parsed.get("Cc", "") + m.bcc = parsed.get("Bcc", "") + m.reply_to = parsed.get("Reply-To", "") + m.body = parsed.get_payload() return m diff --git a/ietf/utils/mail.py b/ietf/utils/mail.py index 7f22acbf3..778582f68 100644 --- a/ietf/utils/mail.py +++ b/ietf/utils/mail.py @@ -113,7 +113,7 @@ def send_smtp(msg, bcc=None): # advertise the AUTH capability. server.ehlo() server.login(settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD) - unhandled = server.sendmail(frm, to, msg.as_string()) + unhandled = server.sendmail(frm, to, msg.as_bytes()) if unhandled != {}: raise SMTPSomeRefusedRecipients(message="%d addresses were refused"%len(unhandled),original_msg=msg,refusals=unhandled) except Exception as e: @@ -352,7 +352,7 @@ def send_mail_mime(request, to, frm, subject, msg, cc=None, extra=None, toUser=F def parse_preformatted(preformatted, extra={}, override={}): """Parse preformatted string containing mail with From:, To:, ...,""" - msg = message_from_string(preformatted.encode("utf-8")) + msg = message_from_string(preformatted) msg.set_charset('UTF-8') for k, v in override.items(): @@ -408,7 +408,7 @@ def send_mail_preformatted(request, preformatted, extra={}, override={}): extra headers as needed).""" (msg, extra, bcc) = parse_preformatted(preformatted, extra, override) - txt = msg.get_payload().decode(str(msg.get_charset())) + txt = msg.get_payload() send_mail_text(request, msg['To'], msg["From"], msg["Subject"], txt, extra=extra, bcc=bcc) return msg