Я проверил много сообщений об этом, но все же не могу найти решение. Я могу отправить электронную почту со встроенными изображениями, но письмо также включает эти изображения в виде вложений, и мне нужны только встроенные изображения. Я пробовал много вариантов, с «родственным» типом, «смешанным». Также с html-кодом внутри программы Python (не в шаблоне Jinja2), но я не могу заставить его работать.Python: многостраничный html-адрес отправляется как со встроенным изображением, так и с приложением
list_of_images = get_graphs() #list with file names
# here if I put "related" - images are sent ONLY as attachments
mail = MIMEMultipart()
for filename in list_of_images:
fp = open(filename, 'rb')
msg_img = MIMEImage(fp.read())
fp.close()
msg_img.add_header('Content-ID', '<{}>'.format(filename))
msg_img.add_header('Content-Disposition', 'inline', filename=filename)
mail.attach(msg_img)
#Jinja2 for html template
env = Environment(loader=FileSystemLoader('.'))
main = env.get_template('images.tpl')
html = main.render(pictures=list_of_images)
msgHtml = MIMEText(html, 'html')
mail.attach(msgHtml)
mail['Subject'] = "TEST"
mail['From'] = "[email protected]"
mail['To'] = "[email protected]"
s = smtplib.SMTP("localhost")
s.sendmail(mail['From'], "[email protected]", mail.as_string())
s.quit()
шаблон дзиндзя:
<html>
<body>
{% for image in pictures %}
<img src="cid:{{image}}">
{% endfor %}
</body>
</html>
Спасибо за ваш ответ Роб! – Yuliya
Он решил мою проблему, если я переместил часть html перед частью изображения. Однако случай с опцией «start» не работал для меня, все равно отправляет как встроенное изображение, так и вложение. – Yuliya