예제 #1
0
def send_html_mail(subject, message, message_html, from_email, recipient_list, recipient_bcc_list,
                   priority="medium", fail_silently=False, auth_user=None,
                   auth_password=None):
    """
    Function to queue HTML e-mails
    """
    from django.utils.encoding import force_unicode
    from django.core.mail import EmailMultiAlternatives
    from mailer.models import make_message, Message
    
    priority = PRIORITY_MAPPING[priority]

    db_msg = Message(priority="0")
    db_msg.save()

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

    # substitute in the message id for tracking
    message = message.format(id=db_msg.id)
    message_html = message_html.format(id=db_msg.id)

    msg = make_message(subject=subject,
                       body=message,
                       from_email=from_email,
                       to=recipient_list,
                       bcc=recipient_bcc_list,
                       priority=priority)


    email = msg.email
    email = EmailMultiAlternatives(email.subject, email.body, email.from_email, email.to, email.bcc)
    email.attach_alternative(message_html, "text/html")
    db_msg.email = email
    db_msg.priority = priority
    db_msg.save()
    return db_msg