bornhack-website/src/utils/outgoingemailworker.py
2017-05-21 20:13:49 +02:00

44 lines
1.3 KiB
Python

from .models import OutgoingEmail
from .email import _send_email
import logging
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))