Sto cercando di ottenere tutti i messaggi da un account Gmail che potrebbe contenere alcuni allegati di grandi dimensioni (circa 30 MB). Ho solo bisogno dei nomi, non di tutti i file. Ho trovato un pezzo di codice per ottenere un messaggio e il nome del attaccamento, ma scarica il file e quindi leggere il suo nome:Ottieni il nome file allegato Gmail senza scaricarlo
import imaplib, email
#log in and select the inbox
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('username', 'password')
mail.select('inbox')
#get uids of all messages
result, data = mail.uid('search', None, 'ALL')
uids = data[0].split()
#read the lastest message
result, data = mail.uid('fetch', uids[-1], '(RFC822)')
m = email.message_from_string(data[0][1])
if m.get_content_maintype() == 'multipart': #multipart messages only
for part in m.walk():
#find the attachment part
if part.get_content_maintype() == 'multipart': continue
if part.get('Content-Disposition') is None: continue
#save the attachment in the program directory
filename = part.get_filename()
fp = open(filename, 'wb')
fp.write(part.get_payload(decode=True))
fp.close()
print '%s saved!' % filename
devo fare questo una volta al minuto, quindi non posso scaricare centinaia di MB di dati. Sono un principiante nello scripting web, quindi qualcuno potrebbe aiutarmi? In realtà non ho bisogno di usare imaplib, qualsiasi lib python sarà ok per me.
migliori saluti
È possibile inviare solo 20 MB in gmail lo sai? – 0x90
Intendo tutti gli allegati in tutti i messaggi. – mopsiok