From c5e526250c05563ae08af58d70accabef2527db0 Mon Sep 17 00:00:00 2001 From: broper2 Date: Sun, 2 Nov 2025 17:24:16 -0600 Subject: [PATCH] Reconnect smtp_server instance if not connected --- notifiers/providers/email.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/notifiers/providers/email.py b/notifiers/providers/email.py index 2bc7dcf2..9e021a0d 100644 --- a/notifiers/providers/email.py +++ b/notifiers/providers/email.py @@ -179,7 +179,7 @@ def _send_notification(self, data: dict) -> Response: errors = None try: configuration = self._get_configuration(data) - if not self.configuration or not self.smtp_server or self.configuration != configuration: + if not self.configuration or not self._is_smtp_connection_alive(self.smtp_server) or self.configuration != configuration: self._connect_to_server(data) email = self._build_email(data) if data.get("attachments"): @@ -193,3 +193,13 @@ def _send_notification(self, data: dict) -> Response: ) as e: errors = [str(e)] return self.create_response(data, errors=errors) + + @staticmethod + def _is_smtp_connection_alive(smtp_server: smtplib.SMTP): + if smtp_server is None: + return False + try: + status = smtp_server.noop()[0] + return status == 250 + except Exception: + return False