only accept mail to netflix_clicker

This commit is contained in:
YuanYu 2024-01-02 19:16:42 +08:00
parent 245486b95c
commit 78215fca70

View File

@ -7,10 +7,18 @@ import asyncio
URL_PATTERN = re.compile(b'"(https://www.netflix.com/account/update-primary-location.*?)"', re.DOTALL) URL_PATTERN = re.compile(b'"(https://www.netflix.com/account/update-primary-location.*?)"', re.DOTALL)
class NetflixHandler: 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): async def handle_DATA(self, session, envelope, *args):
logger.info('Message from %s' % envelope.mail_from)
data = quopri.decodestring( data = quopri.decodestring(
envelope.content.decode('utf8', errors='replace') envelope.content.decode('utf8', errors='replace')
) )
@ -22,6 +30,9 @@ class NetflixHandler:
browser.click(url.decode()) browser.click(url.decode())
except Exception as e: except Exception as e:
logger.error(e) logger.error(e)
elif 'google' in envelope.mail_from:
logger.info(data)
return '250 Message accepted for delivery' return '250 Message accepted for delivery'