109 lines
No EOL
3.4 KiB
Python
109 lines
No EOL
3.4 KiB
Python
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()) |