Отправка составных HTML-сообщений, содержащих встроенные изображения
Для Python версии 3.4 и выше.
Принятый ответ отличный, но multipart подходит только для более mail старых версий Python (2.x email-integration и 3.3). Думаю, его нужно python обновить.
Вот как это можно mime сделать в новых версиях Python python-shell (3.4 и выше):
from email.message import EmailMessage
from email.utils import make_msgid
import mimetypes
msg = EmailMessage()
# generic email headers
msg['Subject'] = 'Hello there'
msg['From'] = 'ABCD '
msg['To'] = 'PQRS '
# set the plain text body
msg.set_content('This is a plain text body.')
# now create a Content-ID for the image
image_cid = make_msgid(domain='xyz.com')
# if `domain` argument isn't provided, it will
# use your computer's name
# set an alternative html body
msg.add_alternative("""\
This is an HTML body.
It also has an image.
""".format(image_cid=image_cid[1:-1]), subtype='html')
# image_cid looks like
# to use it as the img src, we don't need `<` or `>`
# so we use [1:-1] to strip them off
# now open the image and attach it to the email
with open('path/to/image.jpg', 'rb') as img:
# know the Content-Type of the image
maintype, subtype = mimetypes.guess_type(img.name)[0].split('/')
# attach it
msg.get_payload()[1].add_related(img.read(),
maintype=maintype,
subtype=subtype,
cid=image_cid)
# the message is ready now
# you can write it to a file
# or send it using smtplib
python
mime
attachment
multipart
2021-12-22T12:41:29+00:00
2022-11-08T09:19:18+00:00
XrEsTa
Вопросы с похожей тематикой, как у вопроса:
Отправка составных HTML-сообщений, содержащих встроенные изображения
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.