소스 검색

return 421 if any unexpected error happen

Son NK 5 년 전
부모
커밋
d738997c4e
1개의 변경된 파일10개의 추가작업 그리고 0개의 파일을 삭제
  1. 10 0
      email_handler.py

+ 10 - 0
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 ",