Отправка HTML-письма с изображениями с помощью email.mime python
Дано: HTML - файл с привязанными к нему картинками, которые лежат в той же директории.
Надо: отправить письмо так, чтобы оно отображалось у получателя как HTML-страница с картинками на своём месте.
Что я пытался делать: У меня есть код python, который отправляет HTML, но у получателя вместо картинок просто прямоугольники с красными крестиками (нет картинок).
Вот мой код:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.header import Header
def mail_sender(recip, subj, text):
DEFAULT_SMTP_SERVER = '.................'
SENDER = '...................'
RECIPIENT = recip
RECIPIENT2 = '........................'
msg = MIMEMultipart('alternative')
msg['From'] = SENDER
msg['To'] = RECIPIENT
msg['Bcc'] = RECIPIENT2
sub_hed = subj
msg['Subject'] = Header(sub_hed, 'utf-8').encode()
msg.attach(MIMEText(text, 'plain'))
msg.attach(MIMEText(text, 'html'))
message = msg.as_string()
server = smtplib.SMTP(DEFAULT_SMTP_SERVER)
server.sendmail(SENDER, [RECIPIENT], message)
server.sendmail(SENDER, [RECIPIENT2], message)
server.quit()
f = open('TestHTML.html', 'r')
result = f.read()
mail_sender('example@mail.ru', 'тест', result)
ВОПРОС: Как сделать так, чтобы получатель видел полноценный HTML-шаблон с картинками? Может быть, подход неправильный или что-то надо изменить в коде?
Источник: Stack Overflow на русском