summaryrefslogtreecommitdiffstats
path: root/forefront/mail.py
diff options
context:
space:
mode:
authornoptuno <repollo.marrero@gmail.com>2023-04-28 12:33:51 +0200
committernoptuno <repollo.marrero@gmail.com>2023-04-28 12:33:51 +0200
commit396d7e11b2623cf05c3b0fd4ff9b6cce667835fd (patch)
tree4d7f4531e082deba4fb6bac7e5b221d887e066d9 /forefront/mail.py
parentRemove ignored files from repository (diff)
parentMerge pull request #241 from ethanx40/main (diff)
downloadgpt4free-396d7e11b2623cf05c3b0fd4ff9b6cce667835fd.tar
gpt4free-396d7e11b2623cf05c3b0fd4ff9b6cce667835fd.tar.gz
gpt4free-396d7e11b2623cf05c3b0fd4ff9b6cce667835fd.tar.bz2
gpt4free-396d7e11b2623cf05c3b0fd4ff9b6cce667835fd.tar.lz
gpt4free-396d7e11b2623cf05c3b0fd4ff9b6cce667835fd.tar.xz
gpt4free-396d7e11b2623cf05c3b0fd4ff9b6cce667835fd.tar.zst
gpt4free-396d7e11b2623cf05c3b0fd4ff9b6cce667835fd.zip
Diffstat (limited to 'forefront/mail.py')
-rw-r--r--forefront/mail.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/forefront/mail.py b/forefront/mail.py
new file mode 100644
index 00000000..41c2a647
--- /dev/null
+++ b/forefront/mail.py
@@ -0,0 +1,56 @@
+from random import choices
+from string import ascii_letters
+
+from requests import Session
+
+
+class Mail:
+ def __init__(self, proxies: dict = None) -> None:
+ self.client = Session()
+ self.client.proxies = proxies
+ self.client.headers = {
+ "host": "api.mail.tm",
+ "connection": "keep-alive",
+ "sec-ch-ua": "\"Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111\"",
+ "accept": "application/json, text/plain, */*",
+ "content-type": "application/json",
+ "sec-ch-ua-mobile": "?0",
+ "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
+ "sec-ch-ua-platform": "\"macOS\"",
+ "origin": "https://mail.tm",
+ "sec-fetch-site": "same-site",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-dest": "empty",
+ "referer": "https://mail.tm/",
+ "accept-encoding": "gzip, deflate, br",
+ "accept-language": "en-GB,en-US;q=0.9,en;q=0.8"
+ }
+
+ def get_mail(self) -> str:
+ token = ''.join(choices(ascii_letters, k=14)).lower()
+ init = self.client.post("https://api.mail.tm/accounts", json={
+ "address": f"{token}@bugfoo.com",
+ "password": token
+ })
+
+ if init.status_code == 201:
+ resp = self.client.post("https://api.mail.tm/token", json={
+ **init.json(),
+ "password": token
+ })
+
+ self.client.headers['authorization'] = 'Bearer ' + resp.json()['token']
+
+ return f"{token}@bugfoo.com"
+
+ else:
+ raise Exception("Failed to create email")
+
+ def fetch_inbox(self):
+ return self.client.get(f"https://api.mail.tm/messages").json()["hydra:member"]
+
+ def get_message(self, message_id: str):
+ return self.client.get(f"https://api.mail.tm/messages/{message_id}").json()
+
+ def get_message_content(self, message_id: str):
+ return self.get_message(message_id)["text"]