如何发送带有嵌入图像的 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/