在 HTML 电子邮件 Django 中显示内联图像
Posted
技术标签:
【中文标题】在 HTML 电子邮件 Django 中显示内联图像【英文标题】:Display Inline Images in HTML EMail Django 【发布时间】:2014-12-05 22:46:21 【问题描述】:我在发送 html 电子邮件时尝试在 Djano 中内嵌显示图像。我有 HTML 电子邮件工作。但是图像显示为附件,我按照https://www.vlent.nl/weblog/2014/01/15/sending-emails-with-embedded-images-in-django/ 中的步骤将图像显示为附件。我不想要。我希望图像内联显示。
在我的 Django 模板中,我有:
<img src="/static/url/location/image.png" />
urls.py 有正确的设置。当我去:
http://localhost:8000/static/url/location/image.png
我可以清楚地看到图像。
发送电子邮件时,图像不显示,我不知道为什么。任何帮助都将不胜感激。
我正在使用 Django 1.6.2 顺便说一句。
编辑:实现了下面给出的关于使用绝对 URL 的建议。 我确实尝试了绝对 URL。奇怪的部分是:当我使用其他网站的绝对网址时,例如:
<img src="google.com/images/srpr/logo11w.png"; />
图像内嵌显示。当我在本地服务器上使用图像的绝对 url 位置时,图像不显示:-(。不知道我还缺少什么。
【问题讨论】:
HTML 电子邮件中的图片需要使用绝对 URL。 【参考方案1】:您可能需要服务器上图像的绝对 URL。据我所知,无法在电子邮件中引用相关图像。
您可以对当前主机的绝对 URL 执行此操作:
<img src=" request.get_host /static/url/location/image.png" />
您也可以从使用% static %
标签中受益,(如果您正确配置了静态文件)如下:
<img src=" request.get_host % static 'url/location/image.png' %" />
【讨论】:
嗨!感谢您的帮助。我确实尝试了绝对 URL。奇怪的部分是:当我使用其他网站的绝对网址时,例如: google.com/images/srpr/logo11w.png" /> ,图像内联显示。当我在本地服务器上使用图像的绝对 url 位置时,图像不显示:-(。不知道我还缺少什么。 您的电子邮件客户端必须无法连接到您的本地服务器。我想不出别的了。你能确认图片标签中的url是正确的吗? 嗨,是的,我在模板中打印了实际的 url 值,以确保它是正确的 URL。我认为您对电子邮件客户端无法访问 url 的看法是正确的。看起来我必须将图像上传到公共服务器上才能在电子邮件中显示。以上是关于在 HTML 电子邮件 Django 中显示内联图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python/Django 在电子邮件中发送内联图像? [复制]
如何使用 Python/Django 在电子邮件中发送内联图像? [复制]
使用 Django 在 HTML 电子邮件模板中将图像作为内联附件发送
在 Yahoo 和 Gmail 中显示时,HTML 电子邮件的内联 CSS 不断被剥离