Получение электронной почты outlook в том же формате, что и outlook [с использованием python]

#python #outlook #pywin32 #file-format

Вопрос:

Я могу получать все электронные письма из outlook и сохранять их в файл .txt, но формат уничтожен [не удается извлечь HTML-теги, таблицы и т. Д.] Я также сохраняю все сообщения в файл .msg, но все равно формат отсутствует. Есть ли способ сохранить их в каком-либо формате файла, который может содержать тот же формат, что и в Outlook? Код, который я использовал, это:

 import win32com.client import os import time import datetime as dt from datetime import datetime, timedelta import re  .... .... ....  delimiter = "------------------------------------------------------------------" with open('readme_1.msg', 'w ') as f:  for message in messages_1:  f.write(message.Subject)  f.write(message.ReceivedTime.strftime('%d-%b-%Y %H:%M %p') "n")  f.write(message.body)  f.write(delimiter "n")  

Ответ №1:

В коде вы используете свойство обычного текста:

 f.write(message.body)  

Вместо этого, похоже, вас интересует [HTMLBody][1] свойство, которое возвращает или задает строку, представляющую HTML-текст указанного элемента.

Обратите внимание, что установка HTMLBody свойства всегда Body будет немедленно обновлять свойство.

Комментарии:

1. Вы имеете в виду, это заменить сообщение. тело с сообщением. HTMLBody ?

2. Да, вы на правильном пути.

3. Я добавил тело = сообщение. HTMLBody и это сработало. Спасибо @Eugene