From fc6084968a8c9732b5920c7e12626191b73e7a5d Mon Sep 17 00:00:00 2001 From: a76yyyy Date: Sat, 10 Feb 2024 21:45:19 +0800 Subject: [PATCH] =?UTF-8?q?[Bugfix]=20(libs.utils):=20=F0=9F=90=9B587=20?= =?UTF-8?q?=E7=AB=AF=E5=8F=A3=E4=BD=BF=E7=94=A8=20starttls=20=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix qd-today/qd#424 --- libs/utils.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libs/utils.py b/libs/utils.py index b321b0994a2..221a0423a20 100644 --- a/libs/utils.py +++ b/libs/utils.py @@ -454,7 +454,15 @@ async def _send_mail(to, subject, text=None, subtype='html'): logger_util.info('send mail to %s', to) if config.mail_port: if config.mail_ssl or config.mail_port in [465, 587]: - s = smtplib.SMTP_SSL(config.mail_smtp, config.mail_port) + s = None + if config.mail_port == 587: # use starttls + try: + s = smtplib.SMTP(config.mail_smtp, config.mail_port) + s.starttls() + except smtplib.SMTPException as e: + logger_util.error("smtp starttls failed: %s", e, exc_info=config.traceback_print) + if s is None: + s = smtplib.SMTP_SSL(config.mail_smtp, config.mail_port) else: s = smtplib.SMTP(config.mail_smtp, config.mail_port) s.connect(config.mail_smtp, config.mail_port)