|
from json import loads |
|
from re import findall |
|
from time import sleep |
|
|
|
from fake_useragent import UserAgent |
|
from requests import Session |
|
|
|
|
|
class Emailnator: |
|
def __init__(self) -> None: |
|
self.client = Session() |
|
self.client.get("https://www.emailnator.com/", timeout=6) |
|
self.cookies = self.client.cookies.get_dict() |
|
|
|
self.client.headers = { |
|
"authority": "www.emailnator.com", |
|
"origin": "https://www.emailnator.com", |
|
"referer": "https://www.emailnator.com/", |
|
"user-agent": UserAgent().random, |
|
"x-xsrf-token": self.client.cookies.get("XSRF-TOKEN")[:-3] + "=", |
|
} |
|
|
|
self.email = None |
|
|
|
def get_mail(self): |
|
response = self.client.post( |
|
"https://www.emailnator.com/generate-email", |
|
json={ |
|
"email": [ |
|
"domain", |
|
"plusGmail", |
|
"dotGmail", |
|
] |
|
}, |
|
) |
|
|
|
self.email = loads(response.text)["email"][0] |
|
return self.email |
|
|
|
def get_message(self): |
|
print("Waiting for message...") |
|
|
|
while True: |
|
sleep(2) |
|
mail_token = self.client.post("https://www.emailnator.com/message-list", json={"email": self.email}) |
|
|
|
mail_token = loads(mail_token.text)["messageData"] |
|
|
|
if len(mail_token) == 2: |
|
print("Message received!") |
|
print(mail_token[1]["messageID"]) |
|
break |
|
|
|
mail_context = self.client.post( |
|
"https://www.emailnator.com/message-list", |
|
json={ |
|
"email": self.email, |
|
"messageID": mail_token[1]["messageID"], |
|
}, |
|
) |
|
|
|
return mail_context.text |
|
|
|
def get_verification_code(self): |
|
message = self.get_message() |
|
code = findall(r';">(\d{6,7})</div>', message)[0] |
|
print(f"Verification code: {code}") |
|
return code |
|
|
|
def clear_inbox(self): |
|
print("Clearing inbox...") |
|
self.client.post( |
|
"https://www.emailnator.com/delete-all", |
|
json={"email": self.email}, |
|
) |
|
print("Inbox cleared!") |
|
|
|
def __del__(self): |
|
if self.email: |
|
self.clear_inbox() |
|
|