2016-10-28 16 views
0

私はこのコードを使用して、10秒の遅延で新しいメールをチェックしています。PythonでGmailアカウントの新しいメールをチェックする

import poplib 
from email import parser 
import time 

def seeit(): 
    pop_conn = poplib.POP3_SSL('pop.gmail.com') 
    pop_conn.user('xxx') 
    pop_conn.pass_('xx') 
    #Get messages from server: 
    messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)] 
    # Concat message pieces:a 
    messages = ["\n".join(mssg[1]) for mssg in messages] 
    #Parse message intom an email object: 
    messages = [parser.Parser().parsestr(mssg) for mssg in messages] 
    for message in messages: 
     print message['subject'] 
    pop_conn.quit() 


starttime=time.time() 

while True: 
    k=10.0 
    print "tick" 
    seeit() 
    time.sleep(k - ((time.time() - starttime) % k)) 

ヘッダーなしで電子メール本文を取得するにはどうすればよいですか?

+0

あなたはエラーなしでメッセージを取得するのですか? – Nurjan

+0

はい。現在、「件名」が表示されています –

+0

メッセージの本文を印刷できますか?あなたは主題のないメッセージ本文を印刷したいですか?右? – Nurjan

答えて

0

emailパッケージのget_payload()メソッドを参照してください。あなたは、サーバーからメッセージを取得した後

はこれを試してみてください:

import email 

... 
messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)] 
... 

for i in messages: 
    mssg = email.message_from_string(i) 
    print(mssg.get_payload()) 
+0

'message_from_string'が定義されていません。 ' –

+0

'import email'を使用してメールをインポートしましたか? – Nurjan

関連する問題