gpt4 book ai didi

python - 在 HTML 中嵌入图像的 Django EmailMultiAlternatives

转载 作者:太空狗 更新时间:2023-10-30 01:39:09 24 4
gpt4 key购买 nike

我正在尝试发送带有 HTML 和嵌入图像的电子邮件。电子邮件发送工作正常,它还在电子邮件中附加了图像,但它没有以 HTML(内联)显示图像。我在 View 中使用了 Content:ID,在模板中使用了 cid,但没有成功:(。我探索了很多形式并应用了解决方案,但徒劳无功,请帮忙!这是我的代码:

html_content = render_to_string('newsletters/newsletter_template.html', vars)
text_content = strip_tags(html_content)

to = 'myemail@gmail.com'


msg = EmailMultiAlternatives(self.subject, text_content, settings.STAFF_FROM_EMAIL, [to])
msg.attach_alternative(html_content, "text/html")

image_file = open('../media/images/banner_admin.gif', 'rb')
msg_image = MIMEImage(image_file.read())
image_file.close()

msg_image.add_header('Content-ID', '<image1>')
msg.attach(msg_image)

msg.send()

模板文件:

<div style="border:2px solid #CCCCCC; width:900px; font-size:10px; padding:5px;">
<div style="margin-bottom: 10px;"><img src="cid:image1" /></div>
<div style="">{{body|linebreaks}}</div>
</div>

如果我在这里遗漏了什么,请告诉我...

最佳答案

要在电子邮件正文中嵌入 PNG 文件,请尝试以下代码:

for f in ['img1.png', 'img2.png']:
fp = open(os.path.join(os.path.dirname(__file__), f), 'rb')
msg_img = MIMEImage(fp.read())
fp.close()
msg_img.add_header('Content-ID', '<{}>'.format(f))
msg.attach(msg_img)

msg.send()

现在您可以使用 <img src="cid:img1.png">在你的模板中。结果应该是电子邮件客户端在 <img> 的位置显示嵌入邮件中的图像。标记而不是作为附件。

关于python - 在 HTML 中嵌入图像的 Django EmailMultiAlternatives,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com