From c14a7b4f7ac576a9f74b550515304f131d5d648b Mon Sep 17 00:00:00 2001 From: Son Date: Wed, 29 Dec 2021 17:09:24 +0100 Subject: [PATCH] use with ... for smtp --- app/email_utils.py | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/app/email_utils.py b/app/email_utils.py index b4cbea57..7eccf56f 100644 --- a/app/email_utils.py +++ b/app/email_utils.py @@ -1297,26 +1297,32 @@ def sl_sendmail( return try: - # to avoid creating SMTP server every time - smtp = get_smtp_server() + if POSTFIX_SUBMISSION_TLS: + smtp_port = 587 + else: + smtp_port = POSTFIX_PORT - # smtp.send_message has UnicodeEncodeError - # encode message raw directly instead - LOG.d( - "Sendmail mail_from:%s, rcpt_to:%s, header_from:%s, header_to:%s, header_cc:%s", - from_addr, - to_addr, - msg[headers.FROM], - msg[headers.TO], - msg[headers.CC], - ) - smtp.sendmail( - from_addr, - to_addr, - to_bytes(msg), - mail_options, - rcpt_options, - ) + with SMTP(POSTFIX_SERVER, smtp_port) as smtp: + if POSTFIX_SUBMISSION_TLS: + smtp.starttls() + + # smtp.send_message has UnicodeEncodeError + # encode message raw directly instead + LOG.d( + "Sendmail mail_from:%s, rcpt_to:%s, header_from:%s, header_to:%s, header_cc:%s", + from_addr, + to_addr, + msg[headers.FROM], + msg[headers.TO], + msg[headers.CC], + ) + smtp.sendmail( + from_addr, + to_addr, + to_bytes(msg), + mail_options, + rcpt_options, + ) except (SMTPServerDisconnected, SMTPRecipientsRefused) as e: if retries > 0: LOG.w(