首页 > 解决方案 > Django 使用模板发送电子邮件

问题描述

我想使用 Django 发送电子邮件。在邮件正文中,我想发送包含“图像”和 HTML 内容的引导程序“卡片”。

发送邮件成功。但是,它没有在收到的邮件中显示图像。此外,它不是引导程序“卡片”格式。

请有人帮助我。

视图.py

emailSubject = "Mail from XYZ.COM"
emailOfSender = EMAIL_HOST_USER
emailOfRecipient = viewed_bog.profile.user.email

html_content = render_to_string('receipt_email.html', {'item': viewed_bog, }, request=request)

try:        
    emailMessage = EmailMultiAlternatives(subject=emailSubject, body=html_content,      
                   from_email=emailOfSender,                                           
                   to=[emailOfRecipient, ], reply_to=[emailOfSender, ])
    emailMessage.attach_alternative(html_content, "text/html")
    emailMessage.send(fail_silently=False)

except SMTPException as e:
    print('There was an error sending an email: ', e)

收据_email.html

这是包含使用 Django 模板语言的 Bootstrap 4“卡片”的 HTML 模板。在卡片中,我有图像。

现在,我可以成功发送邮件了。但是收到的邮件中没有显示图像。而且,邮件正文不是“卡片”格式。

标签: djangoimageemailtemplates

解决方案


我将假设您正在从 bootstrap.css 文件加载 css,并且由于大多数邮件提供商出于安全原因阻止加载 css 和 js 文件,因此您应该在要发送的模板中使用内联样式。最终,当我想将常规 css 编译为内联 css 时,我使用了一个在线工具。 css 内联工具


推荐阅读