Отправка электронной почты со встроенными изображениями Flask-Mail? - PullRequest
0 голосов
/ 21 марта 2019

У меня есть приложение, которое использует Flask и Flask-Mail. Я пытаюсь отправить электронное письмо, которое использует HTML-файл в качестве шаблона со встроенными изображениями. Все работает, кроме как я не могу видеть изображения. Мой код:

    msg = Message(subject, sender=sender, recipients=recipients)
    msg.body = text_body
    msg.html = html_body
    msg.attachments = [
        Attachment(
            'header.gif',
            'image/gif',
            open(join(mail_blueprint.static_folder, 'header.gif'), 'rb').read(),
            'inline'
        )
    ]
    mail.send(msg)

для html-файла, который я пробовал ссылаться на него несколькими способами, например:

<img src="cid:footer.gif"> и <img src="{{ url_for('mail.static', filename='header.gif') }} ">

Какие-нибудь ссылки или идеи, почему они не будут работать?

1 Ответ

0 голосов
/ 24 апреля 2019

Вам необходимо добавить значение заголовка «Content-ID» во вложении.

msg = Message(subject, sender=sender, recipients=recipients)
msg.body = text_body
msg.html = html_body
msg.attach('header.gif','image/gif',open(join(mail_blueprint.static_folder, 'header.gif'), 'rb').read(), 'inline', headers=[['Content-ID','<Myimage>'],])
mail.send(msg)

Тогда в вашем шаблоне вы будете ссылаться на вложение через Content-ID.

<img src="cid:Myimage">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...