From 01da9aafcd7313803afc33af82d0a6d5bf1b844a Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Thu, 31 Dec 2020 11:26:12 +0100 Subject: [PATCH] retry get_spam_score 1 more time --- email_handler.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/email_handler.py b/email_handler.py index f8a7ee15..b1e76f6f 100644 --- a/email_handler.py +++ b/email_handler.py @@ -1642,7 +1642,7 @@ async def get_spam_score_async(message: Message) -> float: return -999 -def get_spam_score(message: Message, email_log: EmailLog) -> float: +def get_spam_score(message: Message, email_log: EmailLog, can_retry=True) -> float: LOG.debug("get spam score for %s", email_log) sa_input = to_bytes(message) @@ -1658,9 +1658,14 @@ def get_spam_score(message: Message, email_log: EmailLog) -> float: LOG.d("SA report for %s, score %s. %s", email_log, score, sa.get_report_json()) return score except Exception: - LOG.exception("SpamAssassin exception") - # return a negative score so the message is always considered as ham - return -999 + if can_retry: + LOG.warning("SpamAssassin exception, retry") + time.sleep(3) + return get_spam_score(message, email_log, can_retry=False) + else: + # return a negative score so the message is always considered as ham + LOG.exception("SpamAssassin exception, ignore spam check") + return -999 def sl_sendmail(