Python 2.6でRFC822メッセージが与えられた場合、どうすればを得ることができますか? text/plainコンテンツの部分ですか?基本的に、私が欲しいのアルゴリズムは、この次のとおりです。これらの事Pythonを使用して電子メールメッセージのテキストコンテンツを取得するにはどうすればよいですか?
message = email.message_from_string(raw_message)
if has_mime_part(message, "text/plain"):
mime_part = get_mime_part(message, "text/plain")
text_content = decode_mime_part(mime_part)
elif has_mime_part(message, "text/html"):
mime_part = get_mime_part(message, "text/html")
html = decode_mime_part(mime_part)
text_content = render_html_to_plaintext(html)
else:
# fallback
text_content = str(message)
return text_content
、私はバッチリget_mime_part
とhas_mime_part
がありますが、私は、MIMEパートからデコードされたテキストを取得する方法をかなりよく分かりません。
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/message.py", line 189, in get_payload
raise TypeError('Expected list, got %s' % type(self._payload))
TypeError: Expected list, got <type 'str'>
:私はtext/plainの部分にそれを呼び出すとき、私はエラーを取得するget_payload()
を使用してエンコードテキストを取得、私はget_payload()
方法のdecode
パラメータを使用しようとした場合(the docを参照)することができます加えて、私はHTMLを取ってテキストにできるだけ近づける方法を知らない。
私はhttp://ginstrom.com/scribbles/2007/11/19/parsing-multilingual-email-with-に似たものに有益な解決策を見つけましたpython/ – beldaz