使用内嵌图像Flask-Mail发送电子邮件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用内嵌图像Flask-Mail发送电子邮件?相关的知识,希望对你有一定的参考价值。
我有一个使用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') ">
任何参考或想法为什么这些不起作用?
答案
您需要在附件中添加“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">
以上是关于使用内嵌图像Flask-Mail发送电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章