Source code for squaresdb.utils.email

import logging
import smtplib

from django.conf import settings
from django.core.mail.backends import smtp
from django.core.mail.message import sanitize_address

logger = logging.getLogger(__name__)

[docs] class ForcedRecipientEmailBackend(smtp.EmailBackend): def _send(self, email_message): """A helper method that does the actual sending. """ if not email_message.recipients(): return False if settings.EMAIL_FORCED_RECIPIENTS_LABEL not in email_message.to: email_message.to.append(settings.EMAIL_FORCED_RECIPIENTS_LABEL) from_email = sanitize_address(email_message.from_email, email_message.encoding) recipients = [sanitize_address(addr, email_message.encoding) for addr in settings.EMAIL_FORCED_RECIPIENTS] logger.debug("Sending '%s' from '%s' to '%s' recpts '%s'", email_message.subject, email_message.from_email, email_message.to, recipients) message = email_message.message() try: self.connection.sendmail(from_email, recipients, message.as_bytes(linesep='\r\n')) except smtplib.SMTPException: if not self.fail_silently: raise return False return True
[docs] class AutoBccEmailBackend(smtp.EmailBackend): def _send(self, email_message): if settings.EMAIL_AUTO_BCC not in email_message.bcc: email_message.bcc.extend(settings.EMAIL_AUTO_BCC) logger.debug("Sending '%s' from '%s' to '%s' bcc '%s'", email_message.subject, email_message.from_email, email_message.to, email_message.bcc) return super()._send(email_message)