Я достиг того, о чем просит опера, используя почтовую систему django.Кроме того, он будет использовать настройки 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
- вспомогательная функция, которая прикрепляет логотип (изображение, которое я хотел прикрепить в данном случае):
from email.mime.image import MIMEImage
from django.contrib.staticfiles import finders
@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