Python. Работа с Outlook

Необходимо отправить автоматически письмо в Outlook. Не могу добавить подпись с тем форматированием, которое у нее есть (получается вставить только текст). Кусочек кода:

        path_signature = os.getenv('APPDATA') + '\\Microsoft\\Signatures\\Подпись.htm'
        signature = html.parse(path_signature).xpath('//body')[0].text_content()
        app = win.Dispatch("Outlook.Application")
        # Создания письма
        mess = app.CreateItem(0)
        mess.To = "[email protected]"
        # В копию
        mess.CC = "[email protected]"
        # Тема
        mess.Subject = theme + ' - ОТК'
        # Тело
        mess.Body = 'Добрый день\n\nДокументы размещены в папке {}\n\n {}'.format(self.server_directory, signature)
        # Отправка
        mess.Send()

Ответы (1 шт):

Автор решения: Костя Килиманов

Разобрался с вопросом) еще добавил некоторые вещи. если кому-то интересно - оставлю решение

import win32com.client as win
from bs4 import BeautifulSoup

def send_message(theme, To, Body, Att_path, Attachment = False):
    path_signature = os.getenv('APPDATA') + '\\Microsoft\\Signatures\\Подпись.htm'
    with open(path_signature, "r") as f:
        contents = f.read()
        soup = BeautifulSoup(contents, 'lxml')
        signature = soup.body
    app = win.Dispatch("Outlook.Application")
    # Создания письма
    mess = app.CreateItem(0)
    mess.To = To
    # В копию
    mess.CC = "кого в копию"
    # Тема
    if Attachment:
        mess.Subject = theme + ' схема расключения'
        mess.Attachments.Add(Att_path)
    else:
        mess.Subject = theme + ' - ОТК'
    # Тело
    mess.HTMLBody = Body + signature
    # Отправка
    mess.Send()
    messagebox.showinfo('Успешно!', 'Письмо отправлено!')

До этого тело письма формировалось как текст. В исправленном варианте формируется как HTML. Поэтому просто берем содержимое тега body из .html, в котором хранится подпись. При этом текст, который добавляем в тело письма, тоже пишем с использованием тегов html

→ Ссылка