2017-06-13 10 views
0

私は新しい電子メールのために電子メールアドレスを再帰的にチェックしてから、何か他のことをする必要があるアプリケーションを作成しようとしています。私は電子メールの本文を取得することにいくつか問題があります。私はimapclientと並んでpyzmailモジュールを使用しています。そして、指針のために(Python 3.6を使用して)退屈なものを自動化しています。ここに私のコード:Pyzmailモジュールを使って電子メールの本文を再帰的に取得する

mail = imapclient.IMAPClient('imap.gmail.com', ssl=True) 
mail.login('email', 'password') 
mail.select_folder('INBOX', readonly=False) 
uid = mail.gmail_search('NC') 
for i in uid: 
    message = mail.fetch(i, ['BODY[]'], 'FLAGS') 
    msg = pyzmail.PyzMessage.factory(message[i][b'BODY[]']) 
    msg.html_part.get_payload().decode(msg.text_part.charset) 

しかし、それは動作していません。私は基本的にこのコードのさまざまな形を試しましたが、役に立たないし、実際に私を助けることができる多くの例はありません。私はPython初心者の少しです。誰でも助けることができますか? おかげで、私はミスを犯し、コードのビットを固定ところ、私は実現

EDIT

server = imapclient.IMAPClient('imap.gmail.com', ssl=True) 
server.login('[email protected]', 'rabbitrun88ve') 
server.select_folder('INBOX', readonly=True) 
uids = server.gmail_search('NC') 
for i in uids: 
    messages = server.fetch(i, ['BODY[]']) 
    msg = pyzmail.PyzMessage.factory(messages[b'BODY[]']) 

私がいる問題は、私の最後の行、ですイテレータで作成された変数を使用してフィードを与える方法は知られていません。

+0

の「I」の変数を省略。問題文に再帰はありません。 – Max

+0

@Max私はNCを主題とする電子メールの内容を引き出そうとしています。その件名に3つの電子メールがある場合は、その情報を取得したいと思います。例:ある電子メールの内容が「こんにちは、これはテストです」とすれば、それは私が望むすべてです。おそらく私はこの用語を再帰的に間違って使いました。申し訳ありません。 –

答えて

0

この問題がまだ解決されていないかどうかは分かりませんが、今後同様の問題が発生する可能性があります。 私は最終的な行に少しだけ漏れがあることに気づいた。

msg = pyzmail.PyzMessage.factory(messages[b'BODY[]']) 

あなたは、私はあなたがここに「再帰的」によって何を意味するかが表示されないループの

msg = pyzmail.PyzMessage.factory(messages[i][b'BODY[]']) 
関連する問題