Как вставить изображение в электронное письмо как встроенное изображение в Django, используя base64 данные изображения - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь отправить электронное письмо из представлений django, содержащее встроенное изображение.

Я не хочу показывать изображение на каком-либо сервере, поэтому я пытаюсь использовать кодированный в base64 формат для встраивания изображения.

Ниже приведен код, который я написал до сих пор:

получить дату изображения в формате Base64

def get_image(f_path):
    with open(f_path, 'rb') as f:
    img_data = f.read()
    img = 'data:image/png;base64{}'.format(base64.b64encode(img_data).decode())
    return img

Функция отправки электронной почты

def send_email(to_emails):
    img_data = get_image("/myfolder/abcd.png")
    template = "<h1> WTH </h1> <br/> <img src=\"%s\" />" %(img_data)
    message = EmailMultiAlternatives(
        subject="Just a subject don't bother",
        body="blah blah",
        from_email="xxxx",
        to=[to_emails],
    )    
    message.attach_alternative(template, "text/html")
    message.send(fail_silently=False)

Письмо отправлено, но без изображения. Пожалуйста, скажите мне, если я что-то упустил.

Заранее спасибо.

...