Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
 def test_send_message(self):
     email_message = mail.EmailMessage('subject', 'body', '*****@*****.**',
                                       ['*****@*****.**'])
     result = engine.send_message(email_message)
     self.assertEqual(result, constants.RESULT_SENT)
Ejemplo n.º 6
0
 def test_send_message(self):
     email_message = mail.EmailMessage('subject', 'body', '*****@*****.**',
                                       ['*****@*****.**'])
     result = engine.send_message(email_message)
     self.assertEqual(result, constants.RESULT_SENT)