poplibを使用して、Pythonのemailモジュールからemail.Messageクラスからメッセージインスタンスとしてメールをダウンロードするにはどうすればよいですか?
私は、特定の情報についてすべての電子メールを分析し、メッセージの一部をデータベースに保存するプログラムを作成しています。メール全体をテキストとしてダウンロードできますが、添付ファイルを検索するためにテキストをウォークスルーするのは困難です。
アイデアは情報のためにメッセージを解析することです
モジュール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()
AdrienPlissonの回答のような文字セットの問題は扱いません。
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]))