mirror of
https://github.com/coddingtonbear/django-mailbox.git
synced 2026-07-09 22:38:19 +02:00
49 lines
No EOL
1.8 KiB
Python
49 lines
No EOL
1.8 KiB
Python
from django.core.mail import get_connection, EmailMultiAlternatives, EmailMessage, make_msgid
|
|
|
|
|
|
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, headers={'Message-ID': make_msgid()})
|
|
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, headers={'Message-ID': make_msgid()})
|
|
message.attach_alternative(html, 'text/html')
|
|
messages.append(message)
|
|
|
|
record_messages(mailbox, messages)
|
|
|
|
return connection.send_messages(messages) |