# HG changeset patch # User Mads Kiilerich # Date 1604449224 -3600 # Node ID 8bba2d253187a177af5a34a1b446fb485f6d95ff # Parent ad239692ea9570bdb125dc252990d989ff9157ed mail: migrate to modern email.message instead of using old compat32 functionality Before, the HTML part could be detected as pure 7-bit and sent as: Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: 7bit Now, it will use: Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable That should work fine too. diff -r ad239692ea95 -r 8bba2d253187 kallithea/lib/celerylib/tasks.py --- a/kallithea/lib/celerylib/tasks.py Wed Nov 04 00:35:21 2020 +0100 +++ b/kallithea/lib/celerylib/tasks.py Wed Nov 04 01:20:24 2020 +0100 @@ -26,8 +26,7 @@ :license: GPLv3, see LICENSE.md for more details. """ -import email.mime.multipart -import email.mime.text +import email.message import email.utils import os import smtplib @@ -310,7 +309,7 @@ log.warning(logmsg) return False - msg = email.mime.multipart.MIMEMultipart('alternative') + msg = email.message.EmailMessage() msg['Subject'] = subject msg['From'] = app_email_from # fallback - might be overridden by a header msg['To'] = ', '.join(recipients) @@ -320,8 +319,8 @@ del msg[key] # Delete key first to make sure add_header will replace header (if any), no matter the casing msg.add_header(key, value) - msg.attach(email.mime.text.MIMEText(body, 'plain')) - msg.attach(email.mime.text.MIMEText(html_body, 'html')) + msg.set_content(body) + msg.add_alternative(html_body, subtype='html') try: if smtp_use_ssl: