Добавление встроенного изображения в Gmail API приводит к пустому изображению - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь отправить встроенное изображение по электронной почте, используя следующую функцию:

def create_message_without_attachment (sender, to, subject, message_text_html, message_text_plain,image):

message = MIMEMultipart()
message['Subject'] = subject
message['From'] = sender
message['To'] = to

img = MIMEImage(image.read())
img.add_header('Content-Id', '<image1>')
message.attach(img)

message.attach(MIMEText('<p><img src="cid:image1" /></p>'+message_text_html, 'html'))

raw_message_no_attachment = base64.urlsafe_b64encode(message.as_bytes())
raw_message_no_attachment = raw_message_no_attachment.decode()
body  = {'raw': raw_message_no_attachment}
return body

Но когда я получаю электронное письмо, я просто получаю

<p> <img> </p>

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 11 октября 2018
def create_message_without_attachment (sender, to, subject, message_text_html, message_text_plain,image):

message = MIMEMultipart()
message['Subject'] = subject
message['From'] = sender
message['To'] = to

message.attach(MIMEText('<p><img src="cid:image1" /></p>'+message_text_html, 'html'))

image.seek(0)
img = MIMEImage(image.read(), 'png')
img.add_header('Content-Id', '<image1>')
img.add_header("Content-Disposition", "inline", filename="image1")
message.attach(img)

raw_message_no_attachment = base64.urlsafe_b64encode(message.as_bytes())
raw_message_no_attachment = raw_message_no_attachment.decode()
body  = {'raw': raw_message_no_attachment}
return body

Также эта функция была в другом файле.Итак, когда я импортировал и вызывал эту функцию в «Spyder», она не работала, потому что Spyder использовал старую / кэшированную версию импортированного файла ...

...