Я пытаюсь отправить HTML электронное письмо, в котором будет встроенное изображение. Мой код в views.py выглядит следующим образом:
import ...
def signup_mail_function(form): # here, form is just my context
subject = "Signup Successful"
html_message = render_to_string('emailTemplate.html', {'form': form})
plain_message = strip_tags(html_message)
from_email = 'uconnect786@gmail.com'
to_email = [form.email]
# Sending email here
msg = EmailMultiAlternatives(subject=subject, body=plain_message, from_email=from_email,to=to_email)
msg.attach_alternative(html_message, "text/html")
msg.content_subtype = 'html'
msg.mixed_subtype = 'related'
img_path = settings.STATIC_DIR + '/images/blogsImage.svg' # path of my image
image_name = Path(img_path).name # Testing image name,which returns out to be same as image name i.e blogsImage.svg
print(img_path, image_name) # testing image paths here
with open(img_path, 'rb') as f:
image = MIMEImage(f.read(), _subtype="svg+xml")
msg.attach(image)
image.add_header('Content-ID', "<{}>".format(image_name)) # Setting content ID
print("<{}>".format(image_name)) # Testing content ID
msg.send()
Итак, выше приведен мой код обработки сообщений электронной почты. В шаблоне я делаю следующее:
<img alt="Blog Image" src="cid:blogsImage.svg" />
Электронная почта успешно отправляется с изображением в качестве вложения, но на самом деле я ожидал получить изображение как встроенное изображение на странице Html.
В полученном мною электронном письме вы видите, что в шаблоне Html не отображаются изображения, поэтому всплывают 'alt' теги этих изображений
Я мог сделать снимок всей страницы Html, но под ней у меня есть это изображение в виде вложения.
Попытка:
Я также пытался проверить вставку изображения в моем шаблоне Html с использованием прямых URL, таких как:
<img src="https://www.google.com/url?sa=i&rct=j&q=&esrc=s&source=.........." alt="Image">
Но это тоже не сработало. Я почти прочитал каждую статью и блог о рендеринге встроенных изображений с помощью Django, вопросов и ответов о переполнении стека, но ни один из них не помог мне, хотя я пишу так же. Пожалуйста, кто-нибудь направит меня сюда в правильном направлении!