使用电子邮件图像嵌入django中的背景

时间:2011-10-26 08:07:41

标签: django

我正在使用this snippet来嵌入django中的电子邮件图片。但我想用这个图像作为背景。 我在我的模型中使用这些行:

    img_content_id = 'standard.jpg'
    img_data = open('mypath/static/images/standard.jpg', 'rb').read()
    msg = MIMEMultipart(_subtype='related')

    body = 'cid:%s' % img_content_id
    html_content = render_to_string('email/mail.html',
                                      {'email': self.invited, 'url': url, 'current_site':current_site, 'body':body})

    msg = EmailMessage(subject, html_content, settings.DEFAULT_FROM_EMAIL, [self.invited])
    msg.content_subtype = "html"
    msg = email_embed_image(msg, img_content_id, img_data)
    msg.send()

在模板中使用这样的东西:

<table border="0" cellpadding="0" cellspacing="0" background="{{ body }}">

但我在邮件中有两张图片。 (一个作为武官)。在django中使用电子邮件图像作为背景的正确方法是什么?

提前致谢

1 个答案:

答案 0 :(得分:1)

我认为邮件客户端更是一个问题。 你使用什么邮件客户端?

请参阅与Hotmail和Outlook相关的这些文章,它可能会有所帮助:

http://email.about.com/od/windowsmailtips/qt/et_inline_image.htm

http://www.msoutlook.info/question/500

在阅读了您正在使用的代码段的代码后,由于这一行,在附件中看到图片似乎也是正确的:email.attach(img)

查看代码段的第一条评论,它显示了如何使用它:使用css而不是表格。

这些文章描述了两种方法(css和table):

http://www.campaignmonitor.com/blog/post/3170/adding-background-images-to-your-email-in-two-simple-steps/

sending html mail with images not displaying in gmail

我认为这对你的问题很有帮助。