До того, как группы Yahoo были закрыты, вы могли загружать содержимое группы в файл mbox. Я пытаюсь преобразовать файл mbox в серию html-файлов — по одному для каждого сообщения. Моя проблема связана с кодировкой и специальными символами в html. Вот моя попытка:
import mailbox
the_dir = "/path/to/file"
mbox = mailbox.mbox(the_dir + "12394334.mbox")
html_header = """<!DOCTYPE html>
<html>
<head>
<title>Email message</title>
</head>
<body>"""
html_footer = '</body></html>'
for message in mbox:
mess_from = message['from']
subject = message['subject']
time_received = message['date']
if message.is_multipart():
content = ''.join(str(part.get_payload(decode=True)) for part in message.get_payload())
else:
content = message.get_payload(decode=True)
content = str(content)[2:].replace('\\n', '<br/>')
subject.replace('/', '-')
fname = subject + " " + time_received + '.html'
with open(the_dir + 'html/' + fname , 'w') as the_file:
the_file.write(html_header)
the_file.write('<br/>' + 'From: ' + mess_from)
the_file.write('<br/>' + 'Subject: ' + subject)
the_file.write('<br/>' + 'Received: ' + time_received + '<br/><br/>')
the_file.write(content)
Содержимое сообщения имеет обратную косую черту перед апострофами и другими специальными символами, например:
звездный рейтинг, в настоящее время стоит \xa311,99 [идеальный рождественский подарок]. Реклама окончена - Серьезно, если у вас нет приличной книги о маленькой лодке
Мой вопрос в том, как лучше всего получить содержимое сообщения электронной почты и записать его в html-файл с правильными символами. Я не могу быть первым, кто столкнулся с этой проблемой.