Как включить изображение .png в качестве подписи в электронное письмо, используя скрипт MIMEMultipart python - PullRequest
0 голосов
/ 28 февраля 2020

Я пишу письмо с модулем MIMEMultipart Python 3.7 и пытаюсь отправить его через сервер "smtp.office365.com". Я хотел бы завершить следующий фрагмент кода, добавив подпись электронной почты, состоящую из изображения (.png) и некоторого простого текста.

Я пробовал разные способы, но все еще застрял в этой проблеме. Можете ли вы помочь мне добавить правильный фрагмент кода для подписи письма с изображением .png и каким-нибудь простым текстом? Большое спасибо!!

Вот код, который я написал до сих пор:

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

sender='sender@hotmail.it'
reciever='reciever@gmail.com'

#--create a multi-part message object
message = MIMEMultipart()

#--filling up the header
message['From'] = sender
message['Subject'] = 'Hello!'

#body = some HTML text...

#---retrieve and attach the body from the draft email to the new message object
b = MIMEText(body,'html')
message.attach(b)

#---open the attachment file
filename = "attach.pdf"
attachment = open("C:/Users/attach.pdf",'rb')

#---attach the file to the message object 
p = MIMEBase('application','octet-stream')
p.set_payload((attachment).read())
encoders.encode_base64(p)
p.add_header('Content-Disposition',"attachment; filename= %s" % filename)
message.attach(p)

#---convert the message object to string
text = message.as_string()

#--------------------------------------
#-------------SENDING------------------
#--------------------------------------
import smtplib

SMTPserver = 'smtp.office365.com'

USERNAME = sender
PASSWORD = password

#--start server connection
server = smtplib.SMTP(SMTPserver,'587')
server.starttls()
server.login(USERNAME, PASSWORD)
server.sendmail(sender,reciever,text)
server.quit()

...