html_content с вложениями в django-post_office
30 июля 2017 г. 22:25
Обнаружил странную проблему при прикреплении файла в django-post-office (по крайней мере это наблюдается в версии 2.0.8 и ниже): когда посылаешь письмо, состоящее из html-контента с прикреплением любого файла (неважно какого формата), то письмо приходит, но без прикрепленного файла.
Использовались версии пакетов:
django==1.10.7 (и ниже) django-post-office==2.0.8 (и ниже)
Более подробно поведение django-post-office указанной версии и работу функции mail.send()
можно описать так:
- Посылаешь письмо с обычным содержанием, используя параметр
message
, и прикрепляешь файл - работает правильно, т. е. видим и текст письма и вложение. - Посылаешь письмо с содержанием, содержащее html-теги или даже обычный текст без тегов, используя параметр
html_message
, и прикрепляешь файл - работает не правильно, т. е. приходит письмо с файлом, но без самого содержания. - Посылаешь письмо с содержанием, используя параметр
html_message
, но без вложения - работает правильно, т. е. видим текст письма, отформатированный в соответствии с html-тегами.
Я нашёл следующее решение этой странной проблемы: использовать оба параметра message
и html_message
, например:
msg = render_to_string('path/to/template/', {'some_data': 'some_data'}) pdf = render_to_pdf(form.pdf_template, email_data) attachments = {'Message.pdf': ContentFile(pdf)} mail.send(user_email, me, subject=subject, message=msg, html_message=msg, attachments=attachments)
Похожие статьи:
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 2
26.01.2019 9:17 #
A short hack is to pass ' ' (a single whitespace) as 'msg' parameter.
Found it here: https://github.com/ui/django-post_office/issues/116
Ответить
28.01.2019 16:44 #
Thanks for your solution!
Ответить