2018-12-05 19:23:39 +03:00

29 lines
926 B
Python

from django.core.mail.backends.base import BaseEmailBackend
from django.utils.encoding import force_text
from .logger import logger
from .tasks import send_message
def _get_message_recipients(email_message):
message_recipients = getattr(email_message, 'to', None)
if not isinstance(message_recipients, list):
return 'unknown'
return ', '.join(map(force_text, message_recipients))
class EmailBackend(BaseEmailBackend):
def __init__(self, fail_silently=False, **kwargs):
super(EmailBackend, self).__init__(fail_silently, **kwargs)
def send_messages(self, email_messages):
num_sent = 0
for email in email_messages:
try:
send_message.apply_async([email, ])
num_sent += 1
except Exception as e:
logger.error("cannot send message %s: %r" % (_get_message_recipients(email), e))
return num_sent