예제 #1
0
def send_html_mail(subject,
                   message,
                   message_html,
                   from_email,
                   recipient_list,
                   priority="medium",
                   fail_silently=False,
                   auth_user=None,
                   auth_password=None):
    """
    Function to queue HTML e-mails
    """
    from mailer.models import Message

    priority = PRIORITY_MAPPING[priority]

    # need to do this in case subject used lazy version of ugettext
    subject = str(subject)

    for to_address in recipient_list:
        Message(to_address=to_address,
                from_address=from_email,
                subject=subject,
                message_body=message,
                message_body_html=message_html,
                priority=priority).save()
예제 #2
0
    def send_mail(subject,
                  message,
                  from_email,
                  recipient_list,
                  priority="medium",
                  fail_silently=False,
                  auth_user=None,
                  auth_password=None):
        from django.utils.encoding import force_unicode
        from mailer.models import Message
        from mailer import PRIORITY_MAPPING

        priority = PRIORITY_MAPPING[priority]

        # need to do this in case subject used lazy version of ugettext
        subject = force_unicode(subject)
        message = force_unicode(message)

        if len(subject) > 100:
            subject = u"%s..." % subject[:97]

        for to_address in recipient_list:
            message = Message(to_address=to_address,
                              from_address=from_email,
                              subject=subject,
                              message_body=message,
                              priority=priority)
            message.save()
            return message
예제 #3
0
def send_mail(subject,
              message,
              from_email,
              recipient_list,
              priority="medium",
              fail_silently=False,
              auth_user=None,
              auth_password=None,
              headers={},
              attachments=None):
    """
    Function to queue e-mails
    """

    from django.utils.encoding import force_text
    from django.core.mail import EmailMessage
    from mailer.models import Message, PRIORITY_MAPPING

    priority = PRIORITY_MAPPING[priority]
    subject = force_text(subject)
    message = force_text(message)

    email_obj = EmailMessage(subject=subject,
                             body=message,
                             from_email=from_email,
                             to=recipient_list,
                             attachments=attachments,
                             headers=headers)
    db_msg = Message(priority=priority, subject=subject)
    db_msg.email = email_obj
    db_msg.set_recipients(recipient_list)
    db_msg.save()
    return db_msg

    return 1
예제 #4
0
def send_mail(subject,
              message,
              from_email,
              recipient_list,
              priority="medium",
              fail_silently=False,
              auth_user=None,
              auth_password=None):
    from mailer.models import Message

    priority = PRIORITY_MAPPING[priority]

    # need to do this in case subject used lazy version of ugettext
    subject = str(subject)
    message = str(message)

    if len(subject) > 100:
        subject = "%s..." % subject[:97]

    for to_address in recipient_list:
        Message(to_address=to_address,
                from_address=from_email,
                subject=subject,
                message_body=message,
                priority=priority).save()
예제 #5
0
 def send_messages(self, email_messages):
     num_sent = 0
     for email in email_messages:
         msg = Message()
         msg.email = email
         msg.save()
         num_sent += 1
     return num_sent
예제 #6
0
 def send_messages(self, email_messages):
     db_messages = []
     for email in email_messages:
         msg = Message()
         msg.email = email
         db_messages.append(msg)
     Message.objects.bulk_create(db_messages)
     return len(db_messages)
예제 #7
0
    def send_messages(self, email_messages):
        # allow for a custom batch size
        MESSAGES_BATCH_SIZE = getattr(settings, "MAILER_MESSAGES_BATCH_SIZE",
                                      None)

        messages = Message.objects.bulk_create(
            [Message(email=email) for email in email_messages],
            MESSAGES_BATCH_SIZE)

        return len(messages)
예제 #8
0
 def send_messages(self, email_messages):
     num_sent = 0
     subject_prefix = getattr(settings, 'MAILER_EMAIL_SUBJECT_PREFIX', None)
     for email in email_messages:
         if subject_prefix:
             email.subject = u'%s %s' % (_(subject_prefix), email.subject)
         msg = Message()
         msg.email = email
         msg.save()
         num_sent += 1
     return num_sent
예제 #9
0
def mail_managers(subject, message, fail_silently=False, priority="medium"):
    from django.utils.encoding import force_unicode
    from django.conf import settings
    from mailer.models import Message
    priority = PRIORITY_MAPPING[priority]
    for name, to_address in settings.MANAGERS:
        Message(to_address=to_address,
                from_address=settings.SERVER_EMAIL,
                subject=settings.EMAIL_SUBJECT_PREFIX + force_unicode(subject),
                message_body=message,
                priority=priority).save()
예제 #10
0
def send_html_mail(subject,
                   message,
                   message_html,
                   from_email,
                   recipient_list,
                   priority='medium',
                   fail_silently=False,
                   auth_user=None,
                   auth_password=None,
                   headers=None,
                   attachments=None,
                   content_object=None,
                   tag=None,
                   reply_to_list=None):
    """
    Function to queue HTML e-mails
    """

    from django.utils.encoding import force_text
    from django.core.mail import EmailMultiAlternatives
    from mailer.models import Message, PRIORITY_MAPPING

    headers = headers or {}
    priority = PRIORITY_MAPPING[priority]
    # need to do this in case subject used lazy version of ugettext
    subject = force_text(subject)
    message = force_text(message)
    message_html = force_text(message_html)

    email_obj = EmailMultiAlternatives(subject=subject,
                                       body=message,
                                       from_email=from_email,
                                       to=recipient_list,
                                       attachments=attachments,
                                       headers=headers,
                                       reply_to=reply_to_list)
    email_obj.attach_alternative(message_html, 'text/html')
    db_msg = Message(priority=priority,
                     subject=subject,
                     content_object=content_object,
                     tag=tag)
    db_msg.email = email_obj
    db_msg.set_recipients(recipient_list)
    db_msg.set_reply_to(reply_to_list)
    db_msg.save()

    return db_msg
예제 #11
0
def mail_admins(subject, message, fail_silently=False, priority="medium"):
    from django.conf import settings
    from mailer.models import Message

    priority = PRIORITY_MAPPING[priority]

    subject = settings.EMAIL_SUBJECT_PREFIX + str(subject)
    message = str(message)

    if len(subject) > 100:
        subject = "%s..." % subject[:97]

    for name, to_address in settings.ADMINS:
        Message(to_address=to_address,
                from_address=settings.SERVER_EMAIL,
                subject=subject,
                message_body=message,
                priority=priority).save()