почтовые ящики Python - модификация сообщения на месте с использованием API? - PullRequest
0 голосов
/ 28 октября 2018

Я работаю над решением, позволяющим изменять или удалять содержимое (например, подвергать цензуре) в файле пост-экспорта файла почтового ящика. В сети есть множество примеров того, как добавлять и удалять сообщения, но я не вижу примеров модификации без повторного добавления всего, и мое локальное тестирование не было плодотворным.

Например:

>>> mbox = mailbox.mbox(r"somemailbox")
>>> lst = list(mbox.iteritems())
>>> key,message = lst[0]
>>> message['from']
'some-email@gmail.com'
>>> message.get_from()
'<some from string>'
>>> message.set_from("some other string")
>>> del message['from']
>>> message['from'] = "some other email@gmail.com"
>>> message['from']
'some other email@gmail.com'
>>> message.get_from()
'some other string'
>>> mbox.flush()
>>> mbox.close()  

После запуска этого кода вызов flush(), похоже, ничего не делает, или, по крайней мере, не то, что я хочу - содержимое файла на диске будет таким же, когда я в следующий раз его прочитаю. Это единственный способ изменить подобные сообщения, чтобы удалить оригинал и добавить копию?

...