From 66b59a265ad1ccc9d2d8717f643f875e3a1840c7 Mon Sep 17 00:00:00 2001 From: Son NK Date: Sat, 30 Nov 2019 19:34:52 +0000 Subject: [PATCH] remove redundant check in handle_RCPT to support custom domain. Add check to reply phase. --- email_handler.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/email_handler.py b/email_handler.py index 98ba1cb2..cbd0bd8d 100644 --- a/email_handler.py +++ b/email_handler.py @@ -48,15 +48,6 @@ from server import create_app class MailHandler: - async def handle_RCPT(self, server, session, envelope, address, rcpt_options): - if not address.endswith(EMAIL_DOMAIN): - LOG.error(f"Not handle email {address}") - return "550 not relaying to that domain" - - envelope.rcpt_tos.append(address) - - return "250 OK" - async def handle_DATA(self, server, session, envelope): LOG.debug(">>> New message <<<") @@ -179,6 +170,11 @@ class MailHandler: def handle_reply(self, envelope, smtp, msg: EmailMessage) -> str: reply_email = envelope.rcpt_tos[0] + # reply_email must end with EMAIL_DOMAIN + if not reply_email.endswith(EMAIL_DOMAIN): + LOG.error(f"Reply email {reply_email} has wrong domain") + return "550 wrong reply email" + forward_email = ForwardEmail.get_by(reply_email=reply_email) alias = forward_email.gen_email.email