diff --git a/email_handler.py b/email_handler.py index 438bcbf5..3a8d494d 100644 --- a/email_handler.py +++ b/email_handler.py @@ -1212,6 +1212,16 @@ async def get_spam_score(message: Message) -> float: class MailHandler: async def handle_DATA(self, server, session, envelope: Envelope): + try: + ret = await self._handle(envelope) + return ret + except Exception: + LOG.exception( + "email handling fail %s -> %s", envelope.mail_from, envelope.rcpt_tos + ) + return "421 SL Retry later" + + async def _handle(self, envelope: Envelope): start = time.time() LOG.debug( "===>> New message, mail from %s, rctp tos %s ",