From 78215fca70b86ed521d40a88014db8f474b112f1 Mon Sep 17 00:00:00 2001 From: YuanYu Date: Tue, 2 Jan 2024 19:16:42 +0800 Subject: [PATCH] only accept mail to netflix_clicker --- mail_server.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mail_server.py b/mail_server.py index bda0bbf..a419375 100644 --- a/mail_server.py +++ b/mail_server.py @@ -7,10 +7,18 @@ import asyncio URL_PATTERN = re.compile(b'"(https://www.netflix.com/account/update-primary-location.*?)"', re.DOTALL) + class NetflixHandler: + async def handle_RCPT(self, session, envelope, address, rcpt_options): + if 'netflix_clicker' not in address: + logger.info(f'Rejected mail from {envelope.mail_from}') + return '550 not relaying to that domain' + envelope.rcpt_tos.append(address) + logger.info(f'Accepted mail from {envelope.mail_from}') + return '250 OK' + async def handle_DATA(self, session, envelope, *args): - logger.info('Message from %s' % envelope.mail_from) data = quopri.decodestring( envelope.content.decode('utf8', errors='replace') ) @@ -22,6 +30,9 @@ class NetflixHandler: browser.click(url.decode()) except Exception as e: logger.error(e) + elif 'google' in envelope.mail_from: + logger.info(data) + return '250 Message accepted for delivery'