1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-09 22:38:19 +02:00
django-mailbox/django_mailbox/mail.py
Felix Boehme 33c9c32e7e Related object, mass mail utils
Added generic fkey on message in order to allow associating messages
with other objects
Added mass mail utilities that store outgoing messages (including link
to other object)
2014-12-08 14:54:03 -08:00

49 lines
No EOL
1.7 KiB
Python

from django.core.mail import get_connection, EmailMultiAlternatives, EmailMessage
def record_messages(mailbox, messages, related_object=None):
"""
Used in functions below. Records sent messages in Django Mailbox.
"""
for message in messages:
mailbox.record_outgoing_message(message.message(), related_object)
def send_mass_mail_recorded(datatuple, mailbox, related_object=None, bcc=None,
fail_silently=False, auth_user=None, auth_password=None, connection=None):
"""
Shadows Django's send mass mail, but records each outgoing message to the
specified mailbox.
Also added optional bcc argument.
"""
connection = connection or get_connection(
username=auth_user, password=auth_password, fail_silently=fail_silently
)
messages = [EmailMessage(subject, message, sender, recipient, bcc)
for subject, message, sender, recipient in datatuple]
record_messages(mailbox, messages, related_object)
return connection.send_messages(messages)
def send_mass_html_mail_recorded(datatuple, mailbox, related_object=None, bcc=None,
fail_silently=False, user=None, password=None, connection=None):
"""
Like above, but lets you send HTML emails.
"""
connection = connection or get_connection(
username=user, password=password, fail_silently=fail_silently
)
messages = []
for subject, text, html, from_email, recipient in datatuple:
message = EmailMultiAlternatives(subject, text, from_email, recipient, bcc)
message.attach_alternative(html, 'text/html')
messages.append(message)
record_messages(mailbox, messages)
return connection.send_messages(messages)