def test_pause_send_message(self): email_message = mail.EmailMessage('subject', 'body', '*****@*****.**', ['*****@*****.**']) _original, settings.PAUSE_SEND = settings.PAUSE_SEND, True result = engine.send_message(email_message) settings.PAUSE_SEND = _original self.assertEqual(result, constants.RESULT_SKIPPED)
def queue_email_message(email_message, fail_silently=False, priority=None): """ Add new messages to the email queue. The ``email_message`` argument should be an instance of Django's core mail ``EmailMessage`` class. The messages can be assigned a priority in the queue by using the ``priority`` argument. The ``fail_silently`` argument is not used and is only provided to match the signature of the ``EmailMessage.send`` function which it may emulate (see ``queue_django_mail``). """ from django_yubin import constants, models, settings if constants.PRIORITY_HEADER in email_message.extra_headers: priority = email_message.extra_headers.pop(constants.PRIORITY_HEADER) priority = constants.PRIORITIES.get(priority.lower()) if settings.MAILER_TEST_MODE and settings.MAILER_TEST_EMAIL: email_message = set_message_test_mode(email_message, settings.MAILER_TEST_EMAIL) if priority == constants.PRIORITY_NOW_NOT_QUEUED: from django.core.mail import get_connection from django_yubin.engine import send_message connection = get_connection(backend=settings.USE_BACKEND) result = send_message(email_message, smtp_connection=connection) return (result == constants.RESULT_SENT) count = 0 for to_email in email_message.recipients(): message = models.Message.objects.create( to_address=to_email, from_address=email_message.from_email, subject=email_message.subject, encoded_message=email_message.message().as_string()) queued_message = models.QueuedMessage(message=message) if priority: queued_message.priority = priority queued_message.save() count += 1 if priority == constants.PRIORITY_NOW: from django_yubin.engine import send_all messages = [queued_message] send_all(backend=settings.USE_BACKEND, messages=messages) return count
def test_send_message(self): email_message = mail.EmailMessage('subject', 'body', '*****@*****.**', ['*****@*****.**']) result = engine.send_message(email_message) self.assertEqual(result, constants.RESULT_SENT)