Python, как вставлять изображения с помощью win32com.client и Outlook?

Я пытаюсь отправить электронные письма в формате html, используя win32com.client. Вот пример кода:

import win32com.client as win32  

mail = win32.Dispatch('outlook.application').CreateItem(0)
mail.To = '[email protected]'
mail.Subject = 'test'
mail.HTMLBody = html_pages

mail.Send()

Теперь мое решение состоит в том, чтобы загрузить изображения на сервер и вставить URL-адреса в html_pages. Недостатком является то, что изображения не отображаются, когда сервер не работает. Есть ли способ отправить изображения с электронными письмами с помощью win32com?


person Neil    schedule 09.08.2018    source источник


Ответы (1)


Одним из способов сделать это будет отправка изображений в виде вложения:

import win32com.client as win32  

mail = win32.Dispatch('outlook.application').CreateItem(0)
mail.To = '[email protected]'
mail.Subject = 'test'
mail.HTMLBody = html_pages

attachment  = '*path to your image*'
mail.Attachments.Add(attachment)
mail.Send()

Или вы можете поместить изображение в тело html:

import win32com.client as win32  

mail = win32.Dispatch('outlook.application').CreateItem(0)
mail.To = '[email protected]'
mail.Subject = 'test'
mail.HTMLBody = html_pages + <br><img src="path">

mail.Send()

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

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

person Piotrek    schedule 09.08.2018