Pythonでemail.Messageクラスオブジェクトとしての電子メール
質問
どのように私はPythonでメールモジュールからemail.Messageクラスからのメッセージインスタンスとしてpoplibと、ダウンロードメールを使用していますか?
私は、データベースへのメッセージの一部を格納し、具体的な情報については、すべての電子メールを分析するプログラムを、書いています。私はhowver添付ファイルのテキスト検索を歩くことは困難であり、テキストとして全体のメールをダウンロードすることができます。
アイデアは、情報のためのメッセージを解析することです。
解決
FeedParser
でサーバから読み出されたメッセージからemail.feedparser
オブジェクトを構築するためemail.Message
モジュール内poplib
クラスを使用します。
特別ます:
import poplib
import email
pop = poplib.POP3( "server..." )
[establish connection, authenticate, ...]
raw = pop.retr( 1 )
pop.close()
parser = email.parser.FeedParser()
for line in raw[1]:
parser.feed( str( line+b'\n', 'us-ascii' ) )
message = parser.close()
他のヒント
エイドリアン・プリッソンの答えのような文字セットの問題に対処しません。
import poplib
import email
pop = poplib.POP3( "server..." )
[establish connection, authenticate, ...]
raw = pop.retr( 1 )
pop.close()
message = email.message_from_string('\n'.join(raw[1]))
所属していません StackOverflow