bornhack-website/src/utils/outgoingemailworker.py

44 lines
1.3 KiB
Python

import logging
from .email import _send_email
from .models import OutgoingEmail
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("bornhack.%s" % __name__)
def do_work():
"""
The outgoing email worker sends emails added to the OutgoingEmail
queue.
"""
not_processed_email = OutgoingEmail.objects.filter(processed=False)
if len(not_processed_email) > 0:
logger.debug("about to process {} emails".format(len(not_processed_email)))
for email in not_processed_email:
attachment = None
attachment_filename = ""
if email.attachment:
attachment = email.attachment.read()
attachment_filename = email.attachment.name
mail_send_success = _send_email(
text_template=email.text_template,
to_recipients=email.to_recipients,
subject=email.subject,
cc_recipients=email.cc_recipients,
bcc_recipients=email.bcc_recipients,
html_template=email.html_template,
attachment=attachment,
attachment_filename=attachment_filename,
)
if mail_send_success:
email.processed = True
email.save()
logger.debug("successfully sent {}".format(email))
else:
logger.error("unable to sent {}".format(email))