Добавление изображения в нижней части содержимого почты при отправке электронной почты с помощью Python SMTP

#python #email #outlook #smtp #email-attachments

#python #Адрес электронной почты #outlook #smtp #электронная почта-вложения

Вопрос:

Используя библиотеки электронной почты и smtp, я разработал скрипт, который автоматически отправляет почту через smtp-сервер Outlook.

Я ввожу содержимое почты, и после того, как содержимое написано, я хочу отправить изображение внизу.

Но он отправляет изображение не внизу, как я хочу, а вверху содержимого почты.

Пример письма (это только изображение): https://ibb.co/d5HFwRG

Мой код:

 from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage

def send_mail(gender, messages, subject):
    global msg

    try:
        msg = MIMEMultipart()
        s = smtplib.SMTP(host="SMTP.office365.com", port=587)
        s.starttls()
        s.login(mail, password)

        msg['From'] = mail
        msg['To'] = example@outlook.com
        msg['Subject'] = messages

        msg.attach(MIMEText(message, 'plain', 'utf-8'))

        attachment = open("image.jpg", "rb")
        p = MIMEBase('application', 'octet-stream')
        p.set_payload((attachment).read())
        encoders.encode_base64(p)
        p.add_header('Content-Disposition', "attachment; filename= %s" % image)
        msg.attach(p)

        s.send_message(msg)

        del msg

    except Exception as e:
        print(e)
 

Мой код на самом деле намного сложнее, но я только что показал вам функцию, которую я использую для отправки почты.
Мне пришлось изменить имена некоторых переменных при добавлении их сюда, поэтому приведенный выше код может не сработать для вас, вам нужно его отредактировать.

Как я могу отправить это изображение по почте в нижнюю часть?

Комментарии:

1. Я подозреваю, что вам нужно отправить электронное письмо в формате html с изображением, встроенным в html, чтобы заставить это работать. Документы электронной почты python содержат пример того, как это сделать.

2. @snakecharmerb да, я знаю, но есть ли способ сделать это без использования html?

3. Насколько я знаю, нет (но я не эксперт) — если изображение является просто вложением, клиент может отображать его где угодно, предполагая, что он вообще хочет его отображать.

4. хорошо, спасибо за поддержку, я изучу это