9

POP3 メール サーバーにアクセスしようとしています。メッセージをポーリングし、それぞれの添付ファイルをダウンロードします。正常にログインしてメッセージを取得できますが、後で解析する必要がある添付ファイルを実際に取得する方法がわかりません。処理するまで tmp dir に保存できると思います。

これが私がこれまでに得たものです:

pop = poplib.POP3_SSL(server)
pop.user(usr)
pop.pass_(pwd)

f = open(file_dir, 'w')
num_msgs = len(pop.list()[1])
for msg_list in range(num_msgs):
    for msg in pop.retr(msg_list+1)[1]:
        mail = email.message_from_string(msg)
        for part in mail.walk():
            f.write(part.get_payload(decode=True))
f.close()

これは、オンラインで見つけた例をつなぎ合わせたコードですが、実際に添付ファイルを取得する具体的な例ではありません。書き込み先のファイルは空です。ここで何が欠けていますか?

4

2 に答える 2

3

これは古い質問ですが、念のために言っておきます。email.message_from_stringに渡す値は、実際には電子メールの内容のリストであり、各要素は行です。その電子メールの文字列表現を取得するには、それに参加する必要があります。

mail = email.message_from_string("".join(msg))
于 2012-01-20T14:42:14.757 に答える