2012-02-14 20 views
-1

私は電子メールIDを取得し、それらのすべてを取得しようとしています。これはどうすればいいですか?ありがとう!python imaplib gmailはリストから複数の結果を取得しています

次は私のコードです:

件のデータで私のために
import imaplib 
import re 

user = 'user' 
pwd = 'password' 
imap_server = imaplib.IMAP4_SSL('imap.gmail.com', 993) 
imap_server.login(user, pwd) 
imap_server.select('Inbox') 
typ, response = imap_server.search(None, '(SUBJECT "Hello")') 
response = str(response[0]) 
response_re = re.compile('\d+') 
response_pat = re.findall(response_re, response) 

for i in response_pat: 
    results, datas = imap_server.fetch(i, "(RFC822)") 

print i 

このそれでも私は、複数の#valuesのリストを反復している件のデータの印刷つの値、上。

+1

大胆で大きな印刷テキストを使用して、必要なことを教えてください。質問をする場合は、丁寧に質問してください。 –

+0

データを反復処理する場合は、フェッチごとにデータを格納する必要があります。リストを作成します: 'datas = []'、次にリストにデータを追加します。 'datas.append(data)' –

+0

@JasonYeo彼は太字を使用していません。ちょうど正しくフォーマットしていません...(つまり、太字のテキストのようにハッシュコメントです) – Irfy

答えて

1

このコマンドで間違いました。 RCF822の代わりにRFC822にする必要があります。単にコードの1行を変更するだけです。

results, datas = imap_server.fetch(i, "(RCF822)") 

から

results, datas = imap_server.fetch(i, "(RFC822)") 

に次の行を変更して、あなたは、単に文字列ライブラリを使用することができたときにも、正規表現を使用しないでください。正規表現を使用するのではなく、ループ内でこれを行うだけです。

for i in response[0].split(): 
    results, datas = m.fetch(i, "(RFC822)") 
関連する問題