Как отправлять изображения через django sendmail - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь отправить изображения в письме, но у меня это не получается. Я настроил {{ STATIC_URL }}, но это не помогло ... Как я могу это исправить? В настройках: STATIC_URL = 'http://10.0.50.42:8103/static/'

В HTML: <img src="{{ STATIC_URL }}dc/images/banner2.png"> С этим параметром я начал получать письмо, но изображения там не отображаются.

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Насколько я знаю, вы не можете просто поместить ссылку на изображение в шаблоне, который отображается в электронном письме, и ожидать, что он будет работать. Когда вы отправляете изображение, оно все еще находится на вашем компьютере / сервере. Изображение должно быть сохранено как в модели, а затем вы можете использовать этот объект Model для отправки в качестве вложения.

Предположим, что модель файла находится чуть ниже:

class ImageFile(models.Model):
    file = models.ImageField(upload_to='Images',verbose_name='File Path', max_length=400, null=True)

и функция send_mail выглядит так:

def send_mail():
    file_obj = ImageFile.objects.get(file='banner2.png')
    file_url = file_obj.file.path

    msg = EmailMessage(subject=subject, body=email_body, from_email=[frommail],
                                   to=[tomail], bcc=[bcc mails])
    msg.attach_file(file_url)
    msg.send()
0 голосов
/ 11 марта 2020

Прежде всего вы должны загрузить файлы stati c, используя приведенную ниже команду в качестве первой строки html ...

{% load static %}

, затем используйте stati c, как показано ниже в вашем <img> ...

<img src="{% static "dc/images/banner2.png" %}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...