import requests import email class MailClient: def __init__(self): self.username = None self.token = None self.raw = None self.mailids = None self.mails = None self.mail = None def create(self, force=False): headers = { 'accept': 'application/json', } if self.username: pass else: self.response = requests.put( 'https://www.developermail.com/api/v1/mailbox', headers=headers) self.response = self.response.json() self.username = self.response['result']['name'] self.token = self.response['result']['token'] return {'username': self.username, 'token': self.token} def destroy(self): headers = { 'accept': 'application/json', 'X-MailboxToken': self.token, } self.response = requests.delete( f'https://www.developermail.com/api/v1/mailbox/{self.username}', headers=headers) self.response = self.response.json() self.username = None self.token = None return self.response def newtoken(self): headers = { 'accept': 'application/json', 'X-MailboxToken': self.token, } self.response = requests.put( f'https://www.developermail.com/api/v1/mailbox/{self.username}/token', headers=headers) self.response = self.response.json() self.token = self.response['result']['token'] return {'username': self.username, 'token': self.token} def getmailids(self): headers = { 'accept': 'application/json', 'X-MailboxToken': self.token, } self.response = requests.get( f'https://www.developermail.com/api/v1/mailbox/{self.username}', headers=headers) self.response = self.response.json() self.mailids = self.response['result'] return self.mailids def getmails(self, mailids: list = None): headers = { 'accept': 'application/json', 'X-MailboxToken': self.token, 'Content-Type': 'application/json', } if mailids is None: mailids = self.mailids data = str(mailids) self.response = requests.post( f'https://www.developermail.com/api/v1/mailbox/{self.username}/messages', headers=headers, data=data) self.response = self.response.json() self.mails = self.response['result'] return self.mails def getmail(self, mailid: str, raw=False): headers = { 'accept': 'application/json', 'X-MailboxToken': self.token, } self.response = requests.get( f'https://www.developermail.com/api/v1/mailbox/{self.username}/messages/{mailid}', headers=headers) self.response = self.response.json() self.mail = self.response['result'] if raw is False: self.mail = email.message_from_string(self.mail) return self.mail def delmail(self, mailid: str): headers = { 'accept': 'application/json', 'X-MailboxToken': self.token, } self.response = requests.delete( f'https://www.developermail.com/api/v1/mailbox/{self.username}/messages/{mailid}', headers=headers) self.response = self.response.json() return self.response client = MailClient() client.newtoken() print(client.getmails())