Fixed several email handling str/bytes issues.
- Legacy-Id: 16334
This commit is contained in:
parent
2b1f238204
commit
70c00950b6
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue