我想在邮件中发送内联促销图片,例如电子商务网站发送的邮件。对于邮件我使用了django-mail-queue软件包,但我不知道它是否受支持。如果你帮助我,我将不胜感激。
另一个问题是电子邮件接收器无法访问django应用程序托管的服务器,因此我无法在django模板中提供图像URL。
答案 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变量。