2015-07-04 4 views
0

Мне нужно прочитать мой почтовый адрес gmail, но я не знаю, как читать содержимое тела сообщения, надеюсь, вы можете мне помочь, большое спасибо!Python gmail читать новое сообщение от определенного

Также полезно, если я сотрудничаю с циклом while.

import imaplib 

print "Bienvenido" 

print "Logueando email.." 

email = "[email protected]" 
passwd = "password" 

conn = imaplib.IMAP4_SSL('imap.gmail.com') 

try: 
     conn.login(email, passwd) 
except: 
     print sys.exc_info()[1] 
     sys.exit(1) 

print "Ok" 

print "Seleccionando emails del banco.." 

conn.select('INBOX') 

def emails_from(name): 
    status, response = conn.search(None, '(FROM "%s")' % name) 
    email_ids = [e_id for e_id in response[0].split()] 
    print "Ok" 
    print "Revisando si llego el correo.." 
    ids = email_ids[-1] 
    print ids 
    if ids == '279': 
     print "no tiene nuevo correo" #---------BUCLE WHILE TRUE HERE. 
    else: 
     print "si tiene nuevo correo" #---------READ BODY FROM ID. 

    print "Ok" 
    return email_ids 

emails_from(email) 

print "Bye" 

ответ

0

Вы хотите использовать метод conn.fetch. Вот пример imaplib:

import getpass, imaplib 

M = imaplib.IMAP4() 
M.login(getpass.getuser(), getpass.getpass()) 
M.select() 
typ, data = M.search(None, 'ALL') 
for num in data[0].split(): 
    typ, data = M.fetch(num, '(RFC822)') 
    print 'Message %s\n%s\n' % (num, data[0][1]) 
M.close() 
M.logout() 

Так что, вероятно, просто сделать:

typ, data = conn.fetch(ids, '(RFC822)')