0

我想在邮件内容中发送内嵌宣传图片,例如电子商务网站在邮件中发送的内容。对于邮件,我使用了 django-mail-queue 包,但我不知道它是否支持。如果你能帮助我,我将不胜感激。

另一个问题是电子邮件接收者无法访问托管 django 应用程序的服务器,因此我不能简单地在 django 模板中提供图像 url。

4

1 回答 1

1

您可以将图像作为上下文发送,然后将它们作为模板变量传递。像这样:

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 变量中。

于 2017-09-18T06:44:48.640 回答