summaryrefslogtreecommitdiffstats
path: root/quora/mail.py
blob: d4aeb564da3e77598754763d988e1668081a3586 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from requests import Session
from string import ascii_letters
from random import choices

class Mail:
    def __init__(self, proxies: dict = None) -> None:
        self.client = Session()
        self.client.proxies = None #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=10)).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"]


# if __name__ == "__main__":
#     client = Mail()
#     client.get_mail()