You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
stacosys/app/core/mailer.py

45 lines
1.1 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import json
import requests
from conf import config
logger = logging.getLogger(__name__)
def fetch():
mails = []
r = requests.get(config.get(config.MAILER_URL) + "/mbox")
if r.status_code == 200:
logger.info("MAILER => " + str(r.json()))
payload = r.json()
if payload["count"] > 0:
mails = payload["emails"]
return mails
def get(id):
payload = None
r = requests.get(config.get(config.MAILER_URL) + "/mbox/" + str(id))
if r.status_code == 200:
payload = r.json()
return payload
def send(to_email, subject, message):
headers = {"Content-Type": "application/json; charset=utf-8"}
msg = {"to": to_email, "subject": subject, "content": message}
r = requests.post(
config.get(config.MAILER_URL) + "/mbox", data=json.dumps(msg), headers=headers
)
if r.status_code in (200, 201):
logger.debug("Email for %s posted" % to_email)
else:
logger.warn("Cannot post email for %s" % to_email)
def delete(id):
requests.delete(config.get(config.MAILER_URL) + "/mbox/" + str(id))