html - Django:如何发送带有嵌入图像的 HTML 电子邮件

标签 html django image email

如何发送带有嵌入图像的 HTML 电子邮件? HTML 应该如何链接到图像?图像应该添加为多部分电子邮件附件吗?

非常感谢任何示例。

最佳答案

我使用 django 的邮件系统实现了 op 的要求。好处是它将使用 django 设置进行邮件发送(包括用于测试的不同子系统等。我在开发过程中也使用 mailhogs)。它的级别也高了很多:

from django.conf import settings
from django.core.mail import EmailMultiAlternatives


message = EmailMultiAlternatives(
    subject=subject,
    body=body_text,
    from_email=settings.DEFAULT_FROM_EMAIL,
    to=recipients,
    **kwargs
)
message.mixed_subtype = 'related'
message.attach_alternative(body_html, "text/html")
message.attach(logo_data())

message.send(fail_silently=False)

logo_data 是附加 Logo 的辅助函数(在本例中我想附加的图像):

from email.mime.image import MIMEImage

from django.contrib.staticfiles import finders
from functools import lru_cache


@lru_cache()
def logo_data():
    with open(finders.find('emails/logo.png'), 'rb') as f:
        logo_data = f.read()
    logo = MIMEImage(logo_data)
    logo.add_header('Content-ID', '<logo>')
    return logo

关于html - Django:如何发送带有嵌入图像的 HTML 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3787755/

相关文章:

javascript - 将数据保存到localstorage,通过innerHTML显示,如果数据中没有内容,则显示span(Visitors)的原文

html - 如果左右 div 彼此靠得太近,如何将中间的 div 向下移动?

python - django 中的动态 SQL 连接查询

django 管理 jQueryUI 对话框

java - 用于拖放图像文件的面板,带有 java swing

image - Flex列表控件itemrenderer问题

html - Safari 5 中不显示时间轴 div

javascript - 在悬停动态时显示/隐藏 div

django paypal_ipn 表不存在

image - 无法使用 cfdocument/cfcontent 在 pdf 中包含图像