1
我必須通過Python的email.parser
模塊獲得的電子郵件:如何複製email.message.Message對象?
parser = email.parser.Parser()
msg1 = parser.parse(sys.stdin)
我想創建該對象的副本,但我不知道如何最好地去說。我可以使用copy
模塊...
msg2 = copy.deepcopy(msg1)
...但鑑於MIME郵件可能包含部分的有些武斷的樹,我不知道這是正確的解決與否。我可以序列化和重新分析消息...
msg2 = parser.parse(msg1.as_string())
...但文檔表明,as_string
方法可能並不總是做正確的事。我可以創建一個StringIO
對象,並使用generator
...
buf = String()
g = email.generator.Generator(buf)
g.flatten(msg1)
msg2 = parser.parse(buf.getvalue())
...但是,這似乎是一個可怕的很多工作拷貝東西是已經被解析一次。
使用copy
模塊看起來是最簡單的解決方案,但我不熟悉copy
模塊。我做對了嗎?