bornhack-website/src/utils/outgoingemailworker.py

44 lines
1.3 KiB
Python
Raw Normal View History

import logging
2019-06-16 12:32:24 +00:00
from .email import _send_email
from .models import OutgoingEmail
logging.basicConfig(level=logging.INFO)
2019-06-16 12:32:24 +00:00
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, hold=False)
if len(not_processed_email) > 0:
2019-06-16 12:32:24 +00:00
logger.debug("about to process {} emails".format(len(not_processed_email)))
for email in not_processed_email:
attachment = None
2019-06-16 12:32:24 +00:00
attachment_filename = ""
if email.attachment:
attachment = email.attachment.read()
attachment_filename = email.attachment.name
mail_send_success = _send_email(
text_template=email.text_template,
2017-05-21 18:13:49 +00:00
to_recipients=email.to_recipients,
subject=email.subject,
2017-05-21 18:13:49 +00:00
cc_recipients=email.cc_recipients,
bcc_recipients=email.bcc_recipients,
html_template=email.html_template,
attachment=attachment,
2019-06-16 12:32:24 +00:00
attachment_filename=attachment_filename,
)
if mail_send_success:
email.processed = True
email.save()
logger.debug("Successfully sent {}".format(email))
else:
logger.error("Unable to send {}".format(email))