Mail: Do not retry on not-supported features

Drop other constraints since SSLError and SMTPError are subclasses of
OSError anyways
This commit is contained in:
Raphael Michel
2023-10-19 14:03:02 +02:00
parent 50f048fa8b
commit 66a7c7e6b8

View File

@@ -39,7 +39,6 @@ import mimetypes
import os import os
import re import re
import smtplib import smtplib
import ssl
import warnings import warnings
from email.mime.image import MIMEImage from email.mime.image import MIMEImage
from email.utils import formataddr from email.utils import formataddr
@@ -597,7 +596,7 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
raise SendMailException('Failed to send an email to {}.'.format(to)) raise SendMailException('Failed to send an email to {}.'.format(to))
except Exception as e: except Exception as e:
if isinstance(e, (smtplib.SMTPServerDisconnected, smtplib.SMTPConnectError, ssl.SSLError, OSError)): if isinstance(e, OSError) and not isinstance(e, smtplib.SMTPNotSupportedError):
try: try:
self.retry(max_retries=5, countdown=[10, 30, 60, 300, 900, 900][self.request.retries]) self.retry(max_retries=5, countdown=[10, 30, 60, 300, 900, 900][self.request.retries])
except MaxRetriesExceededError: except MaxRetriesExceededError: