#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. хорошо, спасибо за поддержку, я изучу это