使用django-mail-queue在Django中使用Inline图像发送邮件

时间:2017-09-18 06:19:17

标签: django django-mailer

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

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

1 个答案:

答案 0 :(得分: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来实际显示图像存储。

您可以在任何其他图片托管网站上托管您的图片,并将该网址放入image_url变量。