Отправить HTML-письмо со встроенными изображениями в Django

Я пытаюсь отправить электронное письмо в формате HTML со встроенными изображениями, как показано в статье: https://www.vlent.nl/weblog/2014/01/15/sending-emails-with-embedded-images-in-django/. У меня это работает. Теперь я хочу интегрировать его с почтовой программой Django: https://github.com/pinax/django-mailer< /а>.

Я могу ставить электронные письма в очередь для отправки и отправки пакетов электронных писем за один раз.

Код у меня есть:

msg = EmailMultiAlternatives(subject, text_content, from_email, to_email)
msg.attach_alternative(html_content, "text/html")
msg.mixed_subtype = 'related'

fp = open(STATIC_ROOT+ filename, 'rb')
msg_img = MIMEImage(fp.read())
fp.close()
msg_img.add_header('Content-ID', '<{}>'.format(filename))
msg.attach(msg_img)

И чтобы отправить электронное письмо, я просто делаю:

msg.send()

Чтобы отправлять электронные письма в формате html с помощью почтовой программы Django, я должен использовать модуль:

send_html_mail(subject, message_plaintext, message_html, settings.DEFAULT_FROM_EMAIL, recipients)

msg.send_html_mail явно не работает. Я что-то упустил или есть альтернатива?


person doubleo    schedule 28.10.2014    source источник


Ответы (1)


Вы можете просто создать экземпляр соединения самостоятельно (обратите внимание, что Django 1.8 будет включать в себя контекстный менеджер для этого, но он еще не вышел) и отправить почту. Это должно помочь:

from django.core import mail

connection = mail.get_connection()
connection.open()
connection.send_messages(your_messages)
connection.close()

Or:

from django.core import mail

connection = mail.get_connection()
connection.open()
for to_email in recipients:
    # Generate your mail here
    msg = EmailMultiAlternatives(..., connection=connection)
    msg.send()
connection.close()
person Wolph    schedule 28.10.2014