email.parserPythonのモジュールを介して取得した電子メールメッセージがあります。
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モジュールに慣れていません。私は正しいことをしていますか?