[Python] Email, poplib e gli allegati.

Marcello marcello a linuxvil.it
Gio 6 Ago 2009 16:11:56 CEST


Risolto,


import poplib, mimetypes, email, os
ServerPop = poplib.POP3('pop.tiscali.it')
ServerPop.user("xxx a tiscali.it")
ServerPop.pass_("xxx")
Cartella = '.' # directory where to save attachments (default: current)
NumeroMessaggi = len(ServerPop.list()[1])
for Messaggio in range(NumeroMessaggi):
    MessaggioCompleto =
email.message_from_string('\r\n'.join(ServerPop.retr(Messaggio+1)[1]))
    print "-"*30
    #print MessaggioCompleto
    print "-"*30
    if MessaggioCompleto.get_content_maintype() != 'multipart':
        continue
    print "["+MessaggioCompleto["From"]+"] :" + MessaggioCompleto["Subject"]
    print "Inviato da: " + MessaggioCompleto["From"]
    print "Oggetto: " +MessaggioCompleto["Subject"]
    #
    for part in MessaggioCompleto.walk():
        # multipart are just containers, so we skip them
        if part.get_content_maintype() == 'multipart':
            continue
        if part.get('Content-Disposition') is None:
            continue
        filename = part.get_filename()
        counter = 1
        if not filename:
            filename = 'part-%03d%s' % (counter, 'bin')
            counter += 1
        att_path = os.path.join(Cartella, filename)
        if not os.path.isfile(att_path) :
            # finally write the stuff
            fp = open(att_path, 'wb')
            fp.write(part.get_payload(decode=True))
            fp.close()
    if (raw_input("Cancello? (S/N) ") == "S"):
        #ServerPop.dele(Messaggio)
        print "Prossimo messaggio"
ServerPop.quit()
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20090806/3f40499a/attachment.htm 


Maggiori informazioni sulla lista Python