From e6dd2f17178d0f0c730871b06b4493fedfb40817 Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Thu, 10 Sep 2020 09:38:30 +0200 Subject: [PATCH] do not forward to unverified mailbox --- email_handler.py | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/email_handler.py b/email_handler.py index 2f5aaca1..451b3979 100644 --- a/email_handler.py +++ b/email_handler.py @@ -482,19 +482,34 @@ async def handle_forward( # no need to create a copy of message if len(mailboxes) == 1: mailbox = mailboxes[0] - ret.append( - await forward_email_to_mailbox( - alias, msg, email_log, contact, envelope, smtp, mailbox, user + if not mailbox.verified: + LOG.debug("Mailbox %s unverified, do not forward", mailbox) + return [(False, "550 SL E18 unverified mailbox")] + else: + ret.append( + await forward_email_to_mailbox( + alias, msg, email_log, contact, envelope, smtp, mailbox, user + ) ) - ) # create a copy of message for each forward else: for mailbox in mailboxes: - ret.append( - await forward_email_to_mailbox( - alias, copy(msg), email_log, contact, envelope, smtp, mailbox, user + if not mailbox.verified: + LOG.debug("Mailbox %s unverified, do not forward", mailbox) + ret.append((False, "550 SL E19 unverified mailbox")) + else: + ret.append( + await forward_email_to_mailbox( + alias, + copy(msg), + email_log, + contact, + envelope, + smtp, + mailbox, + user, + ) ) - ) return ret