mirror of
https://github.com/coddingtonbear/django-mailbox.git
synced 2026-07-09 22:38:19 +02:00
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)
49 lines
No EOL
1.7 KiB
Python
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) |