我想在邮件内容中发送内嵌宣传图片,例如电子商务网站在邮件中发送的内容。对于邮件,我使用了 django-mail-queue 包,但我不知道它是否支持。如果你能帮助我,我将不胜感激。
另一个问题是电子邮件接收者无法访问托管 django 应用程序的服务器,因此我不能简单地在 django 模板中提供图像 url。
我想在邮件内容中发送内嵌宣传图片,例如电子商务网站在邮件中发送的内容。对于邮件,我使用了 django-mail-queue 包,但我不知道它是否支持。如果你能帮助我,我将不胜感激。
另一个问题是电子邮件接收者无法访问托管 django 应用程序的服务器,因此我不能简单地在 django 模板中提供图像 url。
您可以将图像作为上下文发送,然后将它们作为模板变量传递。像这样:
from django.core.mail import EmailMessage
from django.template import Context
from django.template.loader import get_template
def some_view(request):
template = get_template('myapp/email.html')
image_url ="static/images/sample_image.jpg"
context = Context({'user': user, 'other_info': info,'image_url':image_url})
content = template.render(context)
if not user.email:
raise BadHeaderError('No email address given for {0}'.format(user))
msg = EmailMessage(subject, content, from, to=[user.email,])
msg.send()
然后,在模板myapp/email.html中,使用这个:
<img src="{{ image_url }}" ...>
如果电子邮件接收者无法访问服务器端图像,您可以将图像作为附件发送,但这不会达到目的,为了实际显示图像,img src 需要一个存储实际图像的源 URL。
您可以在任何其他图像托管网站上托管您的图像,并将该 URL 放入 image_url 变量中。