在 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 不断被剥离

当我们使用 phpMailer 发送带有动态内容的邮件时,如何在电子邮件正文中显示多个内联图像

PHP 电子邮件包括但不显示内联图像