2012-02-22 4 views
6

La mia gmail è piena ... Ho bisogno di un metodo per trovare la posta più grande dalla Posta in arrivo e cancellarla. Tuttavia, nell'interfaccia web di gmail, ciò che posso fare è scoprire prima le e-mail con gli allegati, quindi controllare le dimensioni degli allegati una per una.Come eliminare le email più grandi dal mio gmail usando uno script python?

L'efficienza è troppo bassa!

Inoltre, trovo uno script python che può accedere al mio account Gmail e recuperare le email, tramite il protocollo imap, ma non ho trovato un modo per controllare le dimensioni dell'allegato.

Qualcuno potrebbe aiutarmi? Grazie in anticipo.

+0

è possibile impostare Gmail in Thunderbird e ordinare in base alle dimensioni ci – wim

risposta

4

La libreria di Imap dispone di un metodo di ricerca. C'è quasi un codice pronto all'uso per te.

#!/usr/bin/env python 
import imaplib 
from re import findall 

MAXSIZE = 1000 
MINSIZE = 1 

m = imaplib.IMAP4_SSL('imap.gmail.com') 
m.login('[email protected]','testPassword') 
m.select() 
typ, data = m.search(None, 'ALL') 
typ, data = m.search(None,'(SMALLER %d) (LARGER %d)' % (MAXSIZE * 1000,MINSIZE * 1000)) 
for num in data[0].split(): 
    typ, data = m.fetch(num, '(RFC822)') 
    print 'Message %s\n%s\n' % (num, len(data[0][1])) 
m.close() 
m.logout() 
+0

sto usando imap_server.search (None, '(MINORE% d) (PIÙ GRANDE% d)' % (10 * 1024 * 1000, 5 * 1024 * 1000)), ma si verifica un errore: imaplib.error: errore comando SEARCH: BAD ['Could not parse command'] – ciphor

+1

Funziona per me ... – iddqd

+1

qual è la tua versione python? – ciphor