From 72d7fdd05fa555fff3221c31485fc478064aa964 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Tue, 31 Dec 2024 15:07:08 +0100 Subject: [PATCH] add zope.sendmail patch (bug fix) --- loops/organize/browser/party.py | 2 -- loops/patch.py | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/loops/organize/browser/party.py b/loops/organize/browser/party.py index acd052f..096c01b 100644 --- a/loops/organize/browser/party.py +++ b/loops/organize/browser/party.py @@ -195,9 +195,7 @@ class SendEmail(FormController): # TODO: remove duplicates person = getPersonForUser(self.context, self.request) sender = person and adapted(person).email or 'loops@unknown.com' - #msg = MIMEText(message.encode('utf-8'), 'plain', 'utf-8') msg = MIMEText(message, 'plain', 'utf-8') - #msg['Subject'] = subject.encode('utf-8') msg['Subject'] = subject msg['From'] = sender recipients = [r.strip() for r in recipients if r.strip()] diff --git a/loops/patch.py b/loops/patch.py index d50e7d5..03fd809 100644 --- a/loops/patch.py +++ b/loops/patch.py @@ -5,7 +5,6 @@ import zope.index.text.widcode from zope.index.text.widcode import _prog, _decode, _decoding - def patched_decode(code): """_prog pattern is now a string, but after updating from Python2 code is still a bytes array.""" @@ -17,3 +16,21 @@ def patched_decode(code): zope.index.text.widcode.decode = patched_decode print("loops.patch: monkey patch for 'zope.index.text.widcode.decode()' installed.") + +from zope.sendmail.interfaces import IMailer +from zope.sendmail.mailer import SMTPMailer +def patched_smtpMailer(_context, name, hostname="localhost", port="25", + username=None, password=None, implicit_tls=False): + _context.action( + discriminator=('utility', IMailer, name), + callable=handler, + args=('registerUtility', + # fix error: set 'implicit_tls' as a keyword parameter + SMTPMailer(hostname, port, username, password, + implicit_tls=implicit_tls), + IMailer, name) + ) +import zope.sendmail.zcml +zope.sendmail.zcml.smtpMailer = patched_smtpMailer +print("loops patch: monkey patch for 'zope.sendmail.zcml.smtpMailer()' installed") +